0

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

4

0 回答 0