【问题标题】:Accessing current user personal certificate store within windows service在 Windows 服务中访问当前用户个人证书存储
【发布时间】:2010-06-17 11:38:32
【问题描述】:

我正在开发一个从当前用户存储访问 x.509 证书的应用程序。当应用程序作为可执行文件运行时,这可以正常工作。

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

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

任何帮助将不胜感激。

我正在使用这段特定的代码来检索证书:

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

这在作为可执行文件运行时工作正常 - 但在作为 Windows 服务运行时找不到证书

【问题讨论】:

    标签: c# x509


    【解决方案1】:

    当我过去遇到此类问题时,它与用户权限有关,尽管如果您已将服务设置为以管理员身份运行,并且以管理员身份以 exe 运行应用程序,那么我就是有点怀疑。

    也就是说,尝试这两个链接开始 - 它们是从 WCF 的角度编写的,但很容易应用于任何类型的服务:

    Working with Certificates

    How to: Make X.509 Certificates Accessible to WCF

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

    【讨论】:

    • 我浏览了这两篇文章 - 但我并没有真正找到问题所在 - 设置证书很简单,我已经编辑了我的问题以表达感谢
    猜你喜欢
    • 2020-01-24
    • 1970-01-01
    • 2012-02-20
    • 2011-04-07
    • 2019-04-20
    • 2011-11-09
    • 2016-06-03
    • 2016-03-13
    • 2014-01-13
    相关资源
    最近更新 更多