2011-09-28 17 views
1

我正在寻找一种获取所有系统证书存储区的方法,任何locationCurrentUserLocalMachine)。列出所有系统证书存储区

StoreLocation枚举显然不包括用X509Store(String)X509Store(String, StoreLocation)创建的用户定义的证书存储区。此外,这并没有定义other standard stores,例如SPCRequest

我看了一下crypto32.dll API,除了注册/取消注册之外,我看不到任何相关内容。

基于文件系统的商店出现在注册表中(例如HKEY_CURRENT_USER\SOFTWARE\Microsoft\SystemCertificates\Root)。 PowerShell Certificate Provider可以询问商店。这是 - 查询注册表 - 它在底层做了什么?在XP/Vista/7/8之间,这种手动解决方案是否可以移植?

回答

2

那么,我们的SecureBlackbox产品通过CryptoAPI来做你需要的,即CertEnumSystemStore()函数。不过,它有很多参数。

+0

非常好,谢谢! (我想我错过了其他475个cryptoAPI方法/属性)。现在我只需要掌握从C#打击非托管世界...... –

+0

@Martin检查http://pinvoke.net/。虽然它不包含CertEnumSystemStore(我已选中),但它包含类似的功能,可帮助您开始使用。 –