У меня есть сертификат, который мне нужно использовать для доступа к веб-сервису. Проблема в том, что всякий раз, когда я пытаюсь использовать сертификат X509, он запрашивает парольную фразу (ПИН). Есть ли способ предоставить кодовую фразу напрямую, не вызывая каждый раз одно и то же окно?Используйте X509Certificate без кодовой фразы
Сертификат использует ключ, сделанное Oberthur Technologies, если это какой-либо помощи. Вот код, я использую, чтобы получить сертификат:
X509Store store = new X509Store("MY",StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
if(collection.Count != 0)
userCert = collection[0]; // everything's ok up to here
А вот где я использую сертификат:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri(url));
req.ClientCertificates.Add(userCert); // add the certificate I just got
// ...
WebResponse ret = req.GetResponse(); // here's where it asks me for my passphrase
+1 за информацию. К сожалению, это не то, что я хотел услышать. Это сделано Обертуром, или это стандартная особенность всех токенов (просят о штыре)? Я спрашиваю об этом, потому что я должен использовать это в приложении, которое вызывается с консоли другими. Если они должны входить в контакт каждый раз, когда приложение запускается, это было бы ужасно. – alex
Это стандартная функция токена. Как правило, вы можете настроить программное обеспечение токена только для первого запроса, а затем разрешить x минут доступа к сертификату перед повторным запросом. Извините, но я не знаю деталей реализации Oberthur. –