我正在开发一个从当前用户存储访问 x.509 证书的应用程序。当应用程序作为可执行文件运行时,这可以正常工作。
但是,当我尝试将应用程序作为 Windows 服务运行时,它无法找到证书。我尝试更改 windowsservice 控制台的 LogOn 属性以设置正确的用户,但这没有帮助。
有什么方法可以访问特定用户(管理员)的证书存储?我必须在用户存储中使用证书——否则我可以轻松使用本地机器存储。
任何帮助将不胜感激。
我正在使用这段特定的代码来检索证书:
serviceHost.Credentials.ServiceCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "My-CertificateName");
这在作为可执行文件运行时工作正常 - 但在作为 Windows 服务运行时找不到证书