我想从我的商店中找到证书,但是使用以下代码我无法获得证书。它总是返回null。
我的代码怎么了?
更新:
我已经通过浏览存储对象复制了证书指纹,并将其与指纹字符串进行比较,并且返回false!我认为在VS2010 IDE中解释字符串或复制粘贴的问题可以在下面的图中看到。因此,它应该忽略列表中的证书。有人遇到过此类问题吗?
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9pdlV2Mi5wbmcifQ==” alt =“在此处输入图像说明”>
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;
}
}
您的指纹中可能存在不可见/长度为零的字符,尤其是在开始或结束时。测量您提供的指纹长度(“ 35ED ..”)。它应该大于显示的值。