2013-08-05 171 views
0

我有一個windows服務用.net 4編寫。該服務成功使用機器證書存儲區中的X509證書(其私鑰) X509Store級)。如何從服務證書庫中獲取證書.net 4

我看到證書管理單元(Server 2008)允許管理每個服務的證書。我向這家商店添加了一個證書,但我還沒有找到一種方法來訪問它(從Windows服務中)。我嘗試了在互聯網上能夠找到的一些提示,例如從在服務帳戶的用戶上下文中執行的管理單元實例安裝證書。但是,我無法訪問它。

如何從.net 4的windows服務中訪問服務證書存儲的證書?

+0

定義_「訪問」_。 – CodeCaster

+0

@CodeCaster:獲取一個X509Certificate2實例,該實例已初始化爲期望的證書並允許我使用(使用其私鑰簽署一些數據)。 – HCL

回答

1

X509Store.StoreLocation只包含LOCALMACHINE和CurrentUser值,而全套可能的選項包括以下內容(忽略前綴): atCurrentService, atCurrentUser, atCurrentUserGroupPolicy, atLocalMachine, atLocalMachineEnterprise, atLocalMachineGroupPolicy, atServices, atUsers

您需要使用CryptoAPI的打開所需的商店,獲取句柄,然後創建X509Store並將該句柄傳遞給X509Store構造函數。或者使用第三方庫,例如我們的SecureBlackbox。