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