2010-11-18 1 views
1

У меня есть приложение (программа на C#, использующая SharpSSH), и если я попытаюсь запустить его с учетными данными пользователя, который в настоящее время не вошел в систему, я получаю ошибка CryptographicException, говорящая, что «keyset не существует».Ошибка «keyset does not exist», если пользователь не зарегистрирован

Если я запустил приложение с учетными данными пользователя, который в настоящее время вошел в систему, все работает нормально.

Любая идея, почему это может произойти?

ответ

1

При прочих равных условиях (например, у вас есть права доступа к учетным данным) Я предполагаю, что учетные данные, которые вам нужны, хранятся в hive/profile пользователя. Я не знаю, какой certificate store SharpSSH будет использовать (или даже какой SharpSSH вы используете [есть один на codeplex и есть один на sourceforge]).

Предполагая, что учетные данные привязаны к HKEYUser, чтобы исправить, вам нужно загрузить профиль пользователя с помощью LoadUserProfile. Это означает, что у вас должен быть токен безопасности для пользователя (т. Е. Вам придется регистрировать их, но он не обязательно должен быть интерактивным). Или, может быть, вы можете перейти в хранилище сертификатов, которое не привязано к пользователю.

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