这种情况很常见,因为我找不到任何参考资料。
数字证书存储在商店中。
正如你在这里看到的那样......
How do I programmatically remove a certificate in Trusted Root Certification Authorities?
哪里存有个人数字证书? 商店名称为My,我们可以在这里看到:
http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.storename.aspx
但是我需要找到文件本身的位置来以编程方式操作证书。
修改
我也试图以这种方式打印我的证书名称和路径,但我没有打印出来:
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
X509Certificate2Collection storecollection =
(X509Certificate2Collection)store.Certificates;
Console.WriteLine("Store name: {0}", store.Name);
Console.WriteLine("Store location: {0}", store.Location);
foreach (X509Certificate2 x509 in storecollection)
{
Console.WriteLine("certificate name: {0}",x509.Subject);
}
答案 0 :(得分:1)
据我所知,个别证书没有物理文件。
关于第二个问题:您遗漏了Open
store.Open(OpenFlags.ReadWrite);
这样的电话。请参阅MSDN X509Store上的完整示例。