如何从.net 4中的服务证书存储区获取证书

时间:2013-08-05 19:46:08

标签: .net windows-services cryptography x509certificate2

我有一个用.net 4编写的 Windows服务。该服务成功使用了机器证书存储中的X509-Certificate(其私钥)(通过X509Store-class)。

我看到证书管理单元(Server 2008)允许管理每个服务的证书。我在这家商店添加了证书,但我还没有找到一种方法来访问它(从Windows服务中)。我尝试了一些我能够在互联网上找到的提示,例如从在服务帐户的用户上下文下执行的管理单元实例安装证书。但是,我无法访问它。

如何从.net 4中的Windows服务中访问服务证书存储区的证书?

1 个答案:

答案 0 :(得分:1)

X509Store.StoreLocation仅包含LocalMachine和CurrentUser值,而完整的可能选项集包括以下内容(忽略前缀): atCurrentService, atCurrentUser, atCurrentUserGroupPolicy, atLocalMachine, atLocalMachineEnterprise, atLocalMachineGroupPolicy, atServices, atUsers

您需要使用CryptoAPI打开所需的商店,获取句柄,然后创建X509Store并将句柄传递给X509Store构造函数。或者使用第三方库,例如我们的SecureBlackbox。