如何从我的证书存储中读取证书?

7

如果机器上没有安装证书,我希望能够安装一个。我尝试检查存储是否包含证书,但是我的存储总是空的。我检查了“中间证书颁发机构”文件夹,并在那里找到了18个证书。那么为什么这段代码会输出0呢?

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

我也尝试了StoreLocation.CurrentUser。我做错了什么?
2个回答

8

在访问证书之前,您需要调用store.Open(OpenFlags.ReadWrite);


0

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

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

您可以通过以管理员权限运行代码来轻松验证是否存在此问题(但要注意UAC)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接