繁体   English   中英

在证书中设置私钥会挂起Windows服务

[英]Setting private key in certificate hangs windows service

我有应用程序,必须使用需要在提示窗口中输入图钉的证书。

我有以下代码。

SecureString password = GetPassword();
X509Certificate2 certificate = GetCertificate();

var cspParameters = new CspParameters(1,
                                     "ProviderName",
                                     "KeyContainerName",
                                     null,
                                     password);

certificate.PrivateKey = new RSACryptoServiceProvider(cspParameters);

在控制台应用程序中一切正常,但是当我在Windows服务中运行该代码或从任务计划程序启动控制台应用程序时,该应用程序将冻结在该行上。

certificate.PrivateKey = new RSACryptoServiceProvider(cspParameters);

没有例外,没有进步。

我正在使用与应用程序相同的凭据来运行Windows服务。

Windows 10 / Windows Server 2012

您有什么想法吗?

好吧,休息了一会儿,我找到了解决方案。

我必须在这行周围添加模拟:

certificate.PrivateKey = new RSACryptoServiceProvider(cspParameters);

我使用了与服务中相同的凭据,并将LogonType设置为Interactive。

问题在于,PIN提示出现在服务帐户的桌面上,而控制台用户看不到它(即使两者都在同一帐户下运行)。 该服务不会挂起,它会等待PIN输入,并且永远不会收到它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM