Web Service + proxy NTLM + Windows Application = error 407
От: ada_corpit  
Дата: 18.03.09 09:53
Оценка:
Замучил гугл и поиск rsdn — предлагаемые решения не работают.

Что есть:
1. Корпоративный прокси squid, NTLM-аутентификация.
2. Удалённый веб-сервис (С#).
3. Приложение (Windows Application, С#), вызывающее метод веб-сервиса.

Что происходит:
При попытке вызова метода сервиса из приложения вылетает ошибка (407) Proxy Authentication Required.

При этом:
IE ходит нормально, после вводя логина и пароля.
WebReference был сделан ещё в те времена, когда прокси не требовал аутентификации, сейчас Студия WebReference делать не хочет.

Делаю так:

My_WebService myWS = new My_WebService();
myWS.Url = "https://.../MyWebService.asmx";
// ЧТОБЫ ПОДДЕРЖАТЬ ЦЕЛОСТНОСТЬ ВЕБ-СЕССИИ.
CookieContainer cookieContainer = new CookieContainer();
myWS.CookieContainer = _cookieContainer;
// Достаём из локального хранилища сертификат и тянем его в прокси-класс.
myWS.ClientCertificates.Add(GetCertificateBySerialNumber(serial_num));

// Ходим через корпоративный прокси.
myWS.Proxy = WebRequest.DefaultWebProxy;
myWS.UseDefaultCredentials = true;

// Пробовал и так:
//myWS.Credentials = CredentialCache.DefaultCredentials;
//myWS.Proxy.Credentials = CredentialCache.DefaultCredentials;

// Дёргаем метод веб-сервиса.
String s = myWS.TestProxy(); // На этой строке вылетает ошибка 407.
MessageBox.Show(s);


Спасите помогите! Я слово волшебное знаю — пожалуйста.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.