在.NET Core中,我试图通过X509Store对象通过指纹加载证书。代码如下:
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
var certs = store.Certificates.Find(X509FindType.FindByThumbprint, "thumbprint here", false);
我总是得到空的证书集合。我发现很多SO问题,其中问题是结尾或开头的无形字符或指纹。这不是我的情况,我已经检查了空格符号,而且还更愿意将其应用于代码中的指纹:
Regex.Replace(thumbprint.ToUpper(), @"[^0-9A-F]+", string.Empty)
当我枚举store.Certificates时,我的证书正确存在。我可以通过以下方式轻松匹配证书
foreach (var certificate in certificates)
{
if (certificate.Thumbprint == "thumbprint here".ToUpper())
{ ... }
}
有人知道为什么标准X509FindType.FindByThumbprint搜索不起作用吗?