2011-09-28 54 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(我已選中),但它包含類似的功能,可幫助您開始使用。 –