无法通过代码C#获得X509Certificate2证书

问题描述 投票:3回答:2

我想从我的商店中找到证书,但是使用以下代码我无法获得证书。它总是返回null。

“通过指纹获取证书的代码”

我的代码怎么了?

更新:

我已经通过浏览存储对象复制了证书指纹,并将其与指纹字符串进行比较,并且返回false!我认为在VS2010 IDE中解释字符串或复制粘贴的问题可以在下面的图中看到。因此,它应该忽略列表中的证书。有人遇到过此类问题吗?

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9pdlV2Mi5wbmcifQ==” alt =“在此处输入图像说明”>

c#-4.0 x509certificate2
2个回答
3
投票

Well证书集合为空,因为没有带有该指纹的证书。检查:

  • 该证书在您当前的用户中存在

  • 证书已存储在个人文件夹中

尝试:

  • 使用mmc验证以上内容

  • 使用X509Store store = new X509Store(StoreName.Root, StoreLocation.CurrentUser);

编辑:

以下内容是否返回有用的内容:

X509Certificate2Collection col = store.Certificates;

foreach (var currCert in col)
{
     var currThumbprint = currCert.Thumbprint;
     if (thumbprint.ToUpperInvariant() == currThumbprint)
     {
         x509Certificate2= currCert;
         break;
     }
}

2
投票

您的指纹中可能存在不可见/长度为零的字符,尤其是在开始或结束时。测量您提供的指纹长度(“ 35ED ..”)。它应该大于显示的值。

© www.soinside.com 2019 - 2024. All rights reserved.