在将我的 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 功能不能正常工作吗?