2010-01-04 245 views
7

我想在机器上安装证书,如果它没有安装它。我试图检查商店是否包含证书,但不知何故我的商店总是空的。我检查了“中级证书颁发机构”文件夹,并在那里找到了18个证书。那么为什么这个代码写0?如何从我的证书存储中读取证书?

X509Store store = new X509Store(StoreName.CertificateAuthority, StoreLocation.LocalMachine); 
Console.WriteLine(store.Certificates.Count); 

我也试过StoreLocation.CurrentUser。我究竟做错了什么?

回答

8

您必须先致电store.Open(OpenFlags.ReadWrite);,然后才能访问证书。

0

一个可能的解释可能是运行此代码的进程可能没有该特定存储的权限。

Cert存储区实际上只是文件系统特殊部分的包装,所有证书都只是文件。它们都具有访问控制列表(ACL),因此如果您没有正确的权限,则无法看到它们。

通过以管理员权限运行代码(但请注意UAC),可以轻松验证这是否是您的问题。

相关问题