我想在计算机上安装证书(如果它尚未安装)。我试着检查商店是否包含证书,但不知怎的,我的商店总是空的。我检查了“中级证书颁发机构”文件夹,在那里找到了18个证书。那么为什么这段代码会写0?
X509Store store = new X509Store(StoreName.CertificateAuthority, StoreLocation.LocalMachine);
Console.WriteLine(store.Certificates.Count);
我也尝试了StoreLocation.CurrentUser。我做错了什么?
答案 0 :(得分:8)
您必须先致电store.Open(OpenFlags.ReadWrite);
才能访问证书。
答案 1 :(得分:0)
一种可能的解释可能是运行此代码的进程可能没有该特定商店的权限。
Cert store实际上只是文件系统特殊部分的包装器,所有证书都只是文件。它们都有访问控制列表(ACL),因此如果您没有正确的权限,则无法看到它们。
您可以通过运行具有管理员权限的代码轻松验证这是否是您的问题(但请注意UAC)。