FindByThumbprint - 证书存在但找不到

4
我正在尝试为Web请求添加证书以连接到Azure服务。
我的代码如下:
```html

我正在尝试为Web请求添加证书以连接到Azure服务。

我的代码如下:

```
string certThumbprint = "‎‎thumbprint";
X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
X509Certificate2Collection certCollection = certStore.Certificates.Find(
     X509FindType.FindByThumbprint, certThumbprint, false);

现在我可以确认证书确实存在,指纹也正确。然而certCollection返回为空。
有什么想法吗?
更新:这是我打开证书存储的方式。
certStore.Open(OpenFlags.ReadOnly);

你要打开哪个商店? - sharptooth
个人/我的商店 - andrewb
我可以使用FindBySubjectName找到证书,但我更喜欢使用FindByThumbprint。 - andrewb
如果证书无效,我见过这种情况失败。请检查并验证证书是否有效。您可以创建一个控制台应用程序来尝试此操作。 - Chandermani
从今天起到2040年,都是有效的。 - andrewb
显示剩余7条评论
3个回答

17

你的指纹开头可能有一个或两个隐藏字符。在从MMC中的证书管理器复制指纹时,我之前犯过这个错误很多次。这里提供了有关此问题的更多信息的链接。 http://support.microsoft.com/kb/2023835


2
太痛苦了,字符在VS2013中也是看不见的!! - James
我遇到了这个问题,当你在Skype聊天框中粘贴Thumbprint时,你会看到末尾的隐藏字符。 - Vijai

2

获取个人证书存储的证书指纹的安全方法是使用提升权限的PowerShell实例。

PS C:\> dir cert:LocalMachine\My | select Thumbprint, FriendlyName, Subject


0
今天我遇到了同样的问题,虽然有可能在指纹之前和之后存在隐藏字符,但如果您的调试运行在不同的用户下,则StoreLocation.CurrentUser可能与您在Windows中打开的存储不同。
我在本地主机上运行Service Fabric时遇到了这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接