2010-01-04 111 views
7

我想在機器上安裝證書,如果它沒有安裝它。我試圖檢查商店是否包含證書,但不知何故我的商店總是空的。我檢查了「中級證書頒發機構」文件夾,並在那裏找到了18個證書。那麼爲什麼這個代碼寫0?如何從我的證書存儲中讀取證書?

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

我也試過StoreLocation.CurrentUser。我究竟做錯了什麼?

回答

8

您必須先致電store.Open(OpenFlags.ReadWrite);,然後才能訪問證書。

0

一個可能的解釋可能是運行此代碼的進程可能沒有該特定存儲的權限。

Cert存儲區實際上只是文件系統特殊部分的包裝,所有證書都只是文件。它們都具有訪問控制列表(ACL),因此如果您沒有正確的權限,則無法看到它們。

通過以管理員權限運行代碼(但請注意UAC),可以輕鬆驗證這是否是您的問題。

相關問題