将A3证书与服务一起使用

时间:2015-06-15 18:13:07

标签: c# service certificate smartcard

我在服务中使用没有任何错误的A1证书(数字证书)。

A3证书(SmartCard)需要PIN才能开始工作。问题是服务不会显示输入PIN的任何窗口。

有没有办法让服务显示PIN窗口?

1 个答案:

答案 0 :(得分:1)

我猜您的服务正在使用Microsoft CryptoAPI与智能卡进行交互。虽然这是最简单的方法,但在大多数情况下,它并不能让您完全控制智能卡/应用程序的行为,即您无法控制何时显示PIN对话框,您无法自定义PIN对话框等。

您可以尝试这种方法:

  1. 确保在您的系统上启动并运行名为“交互式服务检测”的Windows服务。
  2. 更改Windows服务的属性(在服务列表中右键单击它并选择“属性”菜单项)并选中“登录时”允许服务与桌面交互“选项“tab。
  3. 启动您的服务,您的桌面应切换到session0,其中将显示PIN对话框。
  4. 如果以上操作不起作用并且您可以修改服务的源代码,那么您可以尝试使用PKCS#11 API而不是MS CryptoAPI。 PKCS#11 API使您可以更好地控制智能卡/应用程序行为,并且可以在我使用Pkcs11Interop库的.NET应用程序中方便快捷地使用它。