在将我的wcf服务作为LocalSystem运行时,使用X509Store.Certificates.Find函数时遇到问题。
StoreLocation是'LocalMachine',StoreName是'My'。
以管理员身份运行我的服务时,此功能没有找到所请求证书的问题。
我使用的代码:
X509Certificate2Collection collection = store.Certificates.Find(findType, findValue, true);
如前所述:以管理员身份运行Windows服务工作正常,而LocalSystem却没有。
我没有收到任何错误,新的集合只是空的,但在两种情况下,store.Certificates都包含所请求的证书。
当我使用以下代码时,它可以正常工作。
foreach (X509Certificate2 certificate in store.Certificates)
{
if (certificate.Subject == findValue)
//do stuff
}
有人可以解释一下为什么Certificates.Find功能无法正常工作吗?