获取证书存储的根
Posted
技术标签:
【中文标题】获取证书存储的根【英文标题】:Get root of certificate store 【发布时间】:2020-12-07 06:59:06 【问题描述】:我需要读取证书存储的根文件夹。使用以下课程 (https://docs.microsoft.com/de-de/dotnet/api/system.security.cryptography.x509certificates.x509store?view=netcore-3.1) 我看不到读取证书存储的根目录的可能性,我只能读取证书存储的默认文件夹。但是我们的证书存储中有许多自定义文件夹,所以我需要能够阅读它们。
例如: 我创建了一个存储文件夹“Web Hosting”,并希望读取此文件夹中的证书,但没有为 X509Store 类提供 Storename:“\Web Hosting”。 我想从根目录获取这家商店的名称,因为我不想硬编码许多其他商店文件夹。
感谢您的帮助。
【问题讨论】:
你试过这样的事情吗? blog.codingoutloud.com/2012/11/02/… 【参考方案1】:如果您谈论疼痛等级,则没有 root store
这样的术语。没有任何层次结构。证书存储是存储的简单列表,每个存储用于不同目的。您必须使用X509Store(String, StoreLocation, OpenFlags) 来查询自定义商店。但是,您必须提前知道商店名称。
【讨论】:
那么就不可能得到本地机器的所有storenames? 不在原始 .NET 中。您可能必须通过互操作使用CertEnumSystemStore
C++ 函数:docs.microsoft.com/en-us/windows/win32/api/wincrypt/…。一个 C++ 示例:docs.microsoft.com/en-us/windows/win32/seccrypto/…以上是关于获取证书存储的根的主要内容,如果未能解决你的问题,请参考以下文章