在证书中设置私钥挂起 windows 服务
Setting private key in certificate hangs windows service
我有应用程序,我必须使用一个证书,该证书需要来自提示的 pin window。
我有以下代码。
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 服务器 2012
你知道哪里出了问题吗?
问题是 PIN 提示出现在服务帐户的桌面上,控制台用户不会看到(即使 运行 在同一个帐户下)。该服务不会挂起,它会等待 PIN 输入并且永远不会收到它。
好的,休息后我找到了解决方案。
我不得不围绕这一行添加模拟:
certificate.PrivateKey = new RSACryptoServiceProvider(cspParameters);
我使用了与我的服务中相同的凭据并将登录类型设置为交互式。
我有应用程序,我必须使用一个证书,该证书需要来自提示的 pin window。
我有以下代码。
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 服务器 2012
你知道哪里出了问题吗?
问题是 PIN 提示出现在服务帐户的桌面上,控制台用户不会看到(即使 运行 在同一个帐户下)。该服务不会挂起,它会等待 PIN 输入并且永远不会收到它。
好的,休息后我找到了解决方案。
我不得不围绕这一行添加模拟:
certificate.PrivateKey = new RSACryptoServiceProvider(cspParameters);
我使用了与我的服务中相同的凭据并将登录类型设置为交互式。