C# HttpWebRequest с учетными данными прокси не передает учетные данные на прокси-сервер

В настоящее время я следую за чем-то похожим на это:

 HttpWebRequest myWebRequest = (HttpWebRequest) WebRequest.Create("http://www.microsoft.com");
IWebProxy proxy = myWebRequest.Proxy;
Uri newUri = new Uri(proxyAddress);
myProxy.Address = newUri;
... (setting of username/password for proxy)
myProxy.Credentials = new NetworkCredential(username, password);
 myWebRequest.Proxy = myProxy;

HttpWebResponse myWebResponse = (HttpWebResponse) myWebRequest.GetResponse();

Я запускаю код из размещенного в IIS 7.5 приложения, которое должно проверить, что URL-адреса доступны для контакта, прежде чем процесс продолжится. Поскольку у службы не должно быть доступа к внешнему миру, мне нужно использовать определенный прокси-сервер с учетными данными, предоставленными мне нашим ИТ-отделом.

К сожалению, независимо от того, что я пытаюсь (system.net/default прокси в app.config, со связанным классом модуля для создания URL-адреса и учетных данных, или что-то вроде выше)), прокси-сервер не получает эти учетные данные, переданные ему,

Я что-то пропустил? Я попытался запустить его из веб-приложения VS2010 в режиме отладки, когда приложение запускается из IIS с идентификатором пула приложений по умолчанию. и то же самое с сервера в нашей среде QA, и ничего не меняется - он либо вообще не использует прокси, либо просто не отправляет учетные данные.

Я также пытался установить PreAuthenticate = true а также UseDefaultCredentials оба к true И к, и без изменений.

Есть идеи о том, что мне не хватает?

1 ответ

Изменить: Извините, сначала неправильно понял ваш вопрос - исправленный ответ ниже:

Я хотел бы попытаться создать новый объект WebProxy, установить его учетные данные, а затем установить его в качестве прокси-сервера вашего запроса (вместо того, чтобы получать существующий объект-прокси из запроса и изменять его):

HttpWebRequest myWebRequest =
    (HttpWebRequest) WebRequest.Create("http://www.microsoft.com");
IWebProxy proxy = new WebProxy(proxyAddress);
string proxyUsername = @"foo";
string proxyPassword = @"bar";
proxy.Credentials = new NetworkCredential(proxyUsername, proxyPassword);
myWebRequest.Proxy = proxy;
Другие вопросы по тегам