2016-12-01 11 views
1

У меня есть следующий код C#, который пытается сделать запрос https на определенный URL. Если я изменил URL-адрес, чтобы указать на сервер QAS, который не является https, тогда все работает нормально. Я пробовал множество комбинаций настроек, но ничего, что я делаю, похоже, правильно работает. Вы можете увидеть несколько различных комбинаций вещей, которые я сделал в комментариях.401 Несанкционированное исключение с помощью WebRequest SSL

var request = (HttpWebRequest)WebRequest.Create(nextUrl); 
request.AllowAutoRedirect = false; 
request.UseDefaultCredentials = true; 
request.KeepAlive = false; 
//request.PreAuthenticate = true; 
//request.Credentials = CredentialCache.DefaultNetworkCredentials; 
//request.Credentials = new NetworkCredential("name", "pass", "domain"); 
ServicePointManager.ServerCertificateValidationCallback = AcceptAllCertifications; 
HttpWebResponse response; 
using (response = (HttpWebResponse)request.GetResponse()) 
{ 
    //Do Something 
} 
+0

Какие исключения (-ы) возникают? Можете ли вы уловить проблему SSL в методе делегата обратного вызова проверки сертификатов и посмотреть? –

ответ

0

Ваш код обратного вызова сертификата выглядит неправильно, он должен выглядеть:

ServicePointManager.ServerCertificateValidationCallback = 
    new RemoteCertificateValidationCallback(AcceptAllCertifications); 

Я предполагаю, что у вас есть правильный метод подписи для AcceptAllCertifications. Также класс, который вы используете, если nextUrl - это http, он по умолчанию будет небезопасным, если это https, он по умолчанию будет защищен.

+0

Обратный вызов правильный. Если вы поместите это полное заявление в то, что у вас есть это работает, но он больше не нужен, и вы можете сделать короткую руку, которую у меня есть (я люблю resharper). Также, как я сказал, URL-адрес https. Когда я изменяю его, чтобы указать на тестовый сервер для http, то он работает нормально, но в этом случае это https, который терпит неудачу. –

+0

У меня нет ReSharper, так приятно знать. Вы явно помещаете ** https ** в параметр? Кроме того, вы должны попробовать изменить агент пользователя, чтобы заявить, что это необходимо. – Greg

+0

URL явно указывает https yes. Как мне изменить клиент? –

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

  • Нет связанных вопросов^_^