3

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

通过指纹获取证书的代码

我的代码有什么问题?

更新:

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

在此处输入图像描述

4

2 回答 2

3

那么证书集合是空的,因为没有带有该指纹的证书。查看:

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

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

尝试:

  • 使用 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;
     }
}
于 2012-05-18T12:01:28.670 回答
2

您的指纹中可能有不可见/零长度的字符,尤其是在开头或结尾处。测量您提供的指纹长度(“35ED..”)。它应该比出现的要大。

于 2013-03-04T10:21:56.040 回答