我正在寻找一种方法来获取所有系统证书存储,在任何 location 中(CurrentUser
或 LocalMachine
)。
StoreLocation
枚举显然不包括使用 X509Store(String)
或 X509Store(String, StoreLocation)
创建的用户定义的证书存储.这也没有定义 other standard stores例如 SPC
或 Request
。
我查看了 crypto32.dll
API,除了注册/注销之外,我看不到任何相关内容。
非基于文件系统的存储出现在注册表中(例如 HKEY_CURRENT_USER\SOFTWARE\Microsoft\SystemCertificates\Root
)。 PowerShell Certificate Provider可以查询商店。这是——查询注册表——它在幕后做什么?这样的手动解决方案是否可以在 XP/Vista/7/8 之间移植?
最佳答案
好吧,我们的 SecureBlackbox 产品可以通过 CryptoAPI 满足您的需求,即 CertEnumSystemStore()功能。不过,它有很多参数。
关于c# - 列出所有系统证书库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7587403/