【发布时间】:2015-10-07 12:45:20
【问题描述】:
是否可以从 Windows 服务进行数字签名? 适用于控制台应用程序的相同代码不适用于 Windows 服务
我在尝试数字签名时遇到以下错误:
System.InvalidOperationException:当前会话不是 交互的。在 System.Security.Cryptography.CAPI.CryptUIDlgSelectCertificateW(CRYPTUI_SELECTCERTIFICATE_STRUCTW csc) 在 System.Security.Cryptography.X509Certificates.X509Certificate2UI.SelectFromStore(SafeCertStoreHandle safeSourceStoreHandle,字符串标题,字符串消息,X509SelectionFlag selectionFlags, IntPtr hwndParent) 在 System.Security.Cryptography.X509Certificates.X509Certificate2UI.SelectFromCollectionHelper(X509Certificate2Collection 证书,字符串标题,字符串消息,X509SelectionFlag selectionFlag, IntPtr hwndParent) 在 System.Security.Cryptography.X509Certificates.X509Certificate2UI.SelectFromCollection(X509Certificate2Collection 证书,字符串标题,字符串消息,X509SelectionFlag 选择标志)
似乎 Windows 服务无法调用提供可供选择的证书列表或 PIN 窗口的 GUI? 服务作为本地系统运行,即管理员。我还添加了具有以下设置的 app.manifest:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
这个功能可以使用win服务吗?
【问题讨论】:
标签: .net windows-services digital-signature smartcard cryptoapi