2010-06-17 92 views
2

我正在研究从当前用户存储访问x.509证书的应用程序。当应用程序作为可执行文件运行时,这可以正常工作。访问Windows服务中的当前用户个人证书存储

但是,当我尝试将应用程序作为Windows服务运行时,它无法找到证书。我尝试更改Windows服务控制台的LogOn属性来设置正确的用户,但这没有帮助。

有什么办法可以访问特定用户的(管理员)证书存储?我必须在用户存储中使用证书 - 否则我可以轻松使用本地机器商店。

任何帮助将不胜感激。

我使用这个代码特定部分检索证书:

     serviceHost.Credentials.ServiceCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "My-CertificateName"); 

为可执行运行时,此工作正常 - 但未能找到一个证书作为Windows服务运行时

回答

1

当我过去遇到类似这样的问题,这与用户权限有关,但如果您已将服务设置为以管理员身份运行,并以管理员身份运行应用程序作为exe文件,那么我有点怀疑。

这就是说,尝试这两个环节开始 - 他们是从一个WCF点写的,但容易适用于任何类型的服务:

Working with Certificates

How to: Make X.509 Certificates Accessible to WCF

如果没有在这些帮助中,请编辑您的问题以包含您用于访问x.509证书的代码。

+0

我经历了两篇文章 - 但无法真正找到我最终发生错误的地方 - 设置证书很简单,并且我编辑了我的问题以表达该意见。 谢谢 – Xeel 2010-06-17 15:24:59

相关问题