4

我正在尝试将证书添加到 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);
4

3 回答 3

17

您的指纹最开始可能有一两个隐藏字符。在从 MMC 中的证书管理器复制指纹时,我曾多次犯过这个错误。这是有关此问题的更多信息的链接。 http://support.microsoft.com/kb/2023835

于 2013-09-02T17:49:00.673 回答
1

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

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

于 2021-11-10T23:00:36.240 回答
0

我今天遇到了同样的问题,虽然指纹之前和之后可能有隐藏字符,但如果您的调试在不同的用户下运行,也有可能与StoreLocation.CurrentUser您在 Windows 中打开的存储不同。

我在本地主机上的 Service Fabric 中运行了这个问题

于 2018-09-19T09:50:23.447 回答