Я использую HTTPWebRequest
для доступа к странице, на которой требуется сертификат клиента!
Я использую следующий код, и все работает!
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(textBox1.Text);
X509Certificate2 userCert = SelectClientCertificate();
if (userCert != null) myReq.ClientCertificates.Add(userCert);
HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();
Теперь вот моя проблема, так как мой звонок SelectClientCertificate()
показывает диалог, позволяющий пользователю выбрать сертификат, я не хочу показывать диалог, если сервер не запрашивает аутентификацию клиента! На самом деле я ищу бихевиоризм Internet Explorer. Если при доступе к странице, для которой серверу требуется аутентификация клиента клиента, вы получите диалоговое окно выбора сертификата, которое отображается иначе!
Я посмотрел на AuthenticationManager
, но я не уверен, действительно ли мне нужно зарегистрировать свой собственный AuthenticationModule! так какой-нибудь намек на меня?
Я также проверил StatusCode
для 403 или 403.7, но сервер, с которым я сейчас работаю, также вернет 200 в случае отсутствия сертификата, с содержанием, говорящим, что я не авторизован!