代码之家  ›  专栏  ›  技术社区  ›  agnieszka

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

  •  7
  • agnieszka  · 技术社区  · 16 年前

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

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

    我还尝试了storelocation.currentuser。我做错什么了?

    2 回复  |  直到 16 年前
        1
  •  8
  •   Pent Ploompuu    16 年前

    你得打电话 store.Open(OpenFlags.ReadWrite); 才能访问证书。

        2
  •  0
  •   Mark Seemann    16 年前

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

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

    通过使用管理员权限运行代码,您可以很容易地验证这是否是您的问题(不过,请注意UAC)。

    推荐文章