Базовая аутентификация прокси-сервера в C#: ошибка HTTP 407

Я работаю с прокси-сервером, который требует аутентификации, т. е. в браузере, если я попытаюсь открыть страницу, он немедленно запросит учетные данные. Я указал те же учетные данные в своей программе, но она не работает с ошибкой HTTP 407.

Вот мой код:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);

IWebProxy proxy = WebRequest.GetSystemWebProxy();
CredentialCache cc = new CredentialCache();
NetworkCredential nc = new NetworkCredential();

nc.UserName = "userName";
nc.Password = "password";
nc.Domain = "mydomain";
cc.Add("http://20.154.23.100", 8888, "Basic", nc);
proxy.Credentials = cc;
//proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
request.Proxy = proxy;
request.Proxy.Credentials = cc;
request.Credentials = cc;
request.PreAuthenticate = true;

Я перепробовал все возможные способы, но мне кажется, что я что-то упускаю. Это что-то вроде того, что я должен сделать два запроса? Сначала без учетных данных, и как только я получу ответ от сервера о необходимости учетных данных, сделать такой же запрос с учетными данными?

40
задан Nicolas Raoul 26 October 2015 в 08:26
поделиться