Я разрабатываю приложение со смарт-картой (цифровая подпись). Предположим, что у нас есть один и тот же код в этих двух контекстах:
- Консольное приложение, выполняемое пользователем-администратором
- Служба Windows, выполняемая пользователем-администратором
Я предположил, что если эти два кода будут выполняться одним и тем же пользователем, они будут иметь одинаковые привилегии. Похоже, это неправда. Когда я пытаюсь использовать службу Windows (выполняется с правами администратора), я получаю
TargetInvocationException
CryptographicException
Can't initialize DLL provider at System.Security.Cryptography.Utils.CreateProvHandle(.
Насколько я читал в Интернете, возможно, это проблема с разрешениями. Консольное приложение работает нормально.
В чем разница между службой Windows и консольным приложением, если они выполняются одним и тем же пользователем?
Можно ли добиться таких же результатов с помощью службы Windows?
Бесплатное виртуальное пиво для человека, который его решает;)
Спасибо!