2013-08-05 3 views
0

У меня есть служба Windows , написанная на .net 4. Служба успешно использует X509-сертификат (его закрытый ключ) из хранилища сертификатов машин (через класс X509Store).Как получить сертификат из хранилища сертификатов сервисов в .net 4

Я видел, что оснастка сертификатов (Server 2008) позволяет управлять сертификатами для каждой службы. Я добавил сертификат в этот магазин, но я не нашел способ получить к нему доступ (изнутри службы Windows). Я попробовал несколько советов, которые я смог найти в Интернете, например, установку сертификата из экземпляра оснастки, который выполняется под пользовательским контекстом учетной записи служб. Однако я не смог получить к нему доступ.

Как я могу получить доступ к сертификату хранилища сертификатов сервисов из службы windows в .net 4?

+0

Определить _ "доступ" _. – CodeCaster

+0

@CodeCaster: получите экземпляр X509Certificate2-Instance, который инициализирован желаемым сертификатом и позволяет мне работать (подписать некоторые данные с помощью его закрытого ключа). – HCL

ответ

1

X509Store.StoreLocation содержит только значения LocalMachine и CurrentUser, в то время как полный набор возможных вариантов включает в себя следующее (игнорировать префикс): atCurrentService, atCurrentUser, atCurrentUserGroupPolicy, atLocalMachine, atLocalMachineEnterprise, atLocalMachineGroupPolicy, atServices, atUsers

Вы должны использовать CryptoAPI, чтобы открыть нужный магазин, получить ручку , затем создайте X509Store и передайте дескриптор конструктору X509Store. Или используйте стороннюю библиотеку, такую ​​как наш SecureBlackbox.

Смежные вопросы