C# 列出计算机上的所有证书

C# 列出计算机上的所有证书,c#,certificate,C#,Certificate,我正在尝试列出位于计算机上的所有证书。我已经阅读了我在网上遇到的所有例子,但没有任何效果。我在Windows7和Windows8计算机上都试过了,没有任何错误。以下是我到目前为止的情况: public void Analyser_Load(object sender, EventArgs e) { var store = new X509Store(StoreLocation.CurrentUser); store.Open(OpenFlags.ReadOnly);

我正在尝试列出位于计算机上的所有证书。我已经阅读了我在网上遇到的所有例子,但没有任何效果。我在Windows7和Windows8计算机上都试过了,没有任何错误。以下是我到目前为止的情况:

public void Analyser_Load(object sender, EventArgs e)
{
    var store = new X509Store(StoreLocation.CurrentUser);

    store.Open(OpenFlags.ReadOnly);

    var certificates = store.Certificates;

    foreach (var certificate in certificates)
    {
        var friendlyName = certificate.FriendlyName;
        var xname = certificate.GetName(); //obsolete
        Console.WriteLine(friendlyName);
    }

    store.Close();       
  }
试着这样,

X509Store store = new X509Store("My");
store.Open(OpenFlags.ReadOnly);
foreach (X509Certificate2 mCert in store.Certificates){
//TODO's
}
根据ILSpy,如果不指定,X509Store类构造函数默认为StoreName.My。您的个人证书存储是否为空

为避免歧义,我建议您始终指定门店名称和位置,例如

var store = new X509Store(StoreName.My, StoreLocation.CurrentUser);

谢谢你让我们知道,如果你有一个具体的问题,你想回答,你应该张贴,而不是。