Возможно ли цифровое оформление с помощью Windows? Тот же самый код, который работает с консольным приложения, не работает от службы Windows,Цифровая подпись с использованием Microsoft CryptoAPI из службы Windows?
Я получил folllowing ошибки при попытке поставить цифровую подпись:
System.InvalidOperationException: Текущая сессия не интерактивная. в System.Security.Cryptography.CAPI.CryptUIDlgSelectCertificateW (CRYPTUI_SELECTCERTIFICATE_STRUCTW CSC) в System.Security.Cryptography.X509Certificates.X509Certificate2UI.SelectFromStore (SafeCertStoreHandle safeSourceStoreHandle, строка заголовка, строка сообщения, X509SelectionFlag selectionFlags, IntPtr hwndParent) в системе .Security.Cryptography.X509Certificates.X509Certificate2UI.SelectFromCollectionHelper (X509Certificate2Collection сертификаты, Строка название, строка сообщения, X509SelectionFlag SelectionFlag, IntPtr hwndParent) при System.Security.Cryptography.X509Certificates.X509Certificate2UI.SelectFromCollection (X509Certificate2Collection сертификаты, строка заголовка, ул ИНГ сообщение, X509SelectionFlag SelectionFlag)
Похоже служба Windows не может ссылаться на GUI, который предлагает список сертификатов, чтобы выбрать или окно для PIN-кода? Служба работает как LocalSystem, которая является администратором. Я также добавил app.manifest со следующими настройками:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Возможно ли использовать услугу win для этой функции?
Проблема в том, что пользователь должен выбрать сертификат и подписать его с закрытым ключом на смарт-карте. Я не знаю, перед каким сертификатом будет использоваться. Кроме того, при подписании с закрытым ключом также появляется диалоговое окно pop pop windows, которое предлагает ввод ключа. – nemke
Какова мотивация запуска приложения в качестве сервиса? – Ananke
Это сервис HttpListener в win, который слушает на локальном хост-узле и позволяет получать цифровые подписи с персонального электронного идентификатора с общедоступного веб-сайта. – nemke