У меня есть форма C # (запущенная на клиентском компьютере), которая собирает все пользовательские сертификаты X509 из хранилища, представляет их пользователю, чтобы они могли выбрать тот, который они хотят использовать. Затем я передаю сертификат веб-службе для выполнения какой-либо работы.
Это все прекрасно работает!
Проблема в том, что пользователю никогда не предлагается пароль X509Certificate? Я не могу найти способ «проверить пароль» после получения сертификата X509 из магазина. Я также подумал об использовании конструктора X509Certificate, которому нужен путь и пароль, но я не вижу способа получить путь к файлу и имя из сертификата X509, который я взял из магазина?
Безопасно ли просто взять сертификат из магазина и не спрашивать пароль пользователя?
Вот как я хватаю из магазина:
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
for (int i = 0; i < store.Certificates.Count; i++)
{
X509Certificate c = store.Certificates[i];
...//add to GUI for user to pick here....
}
Спасибо за любую помощь,
Стив