В настоящее время я разрабатываю IE-плагин, используя SpicIE.
Этот плагин делает некоторые веб-скребки, похожие на пример, размещенный в MSDN:
WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html");
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
Stream dataStream = response.GetResponseStream ();
StreamReader reader = new StreamReader (dataStream);
string responseFromServer = reader.ReadToEnd ();
reader.Close ();
dataStream.Close ();
response.Close ();
Однако, когда я запускаю этот код, я получаю следующее сообщение об ошибке:
Удаленный сервер ответил на ошибку: (407) Требуется аутентификация прокси.
В настоящее время я работаю за прокси-сервером и использовал класс NetworkCredential для ручного предоставления учетных данных сети
request.Credentials = new System.Net.NetworkCredential("name", "password", "domain");
но я все равно получаю ту же ошибку.
Даже если моя проблема решена, я знаю, что некоторые пользователи плагина будут за прокси-сервером.
Я хочу знать, как я могу получить учетные данные IE и использовать его в своем коде, чтобы назначить его запросу. Credentials.
Возможно, что-то вроде этого:
request.Credentials = IE.DefaultCredentials;
Вы устанавливаете учетные данные для сайта, но вам нужны учетные данные для прокси.
Установите request.Proxy.Credentials
.
(Кроме того, используйте операторы using
для ответа/потока/чтения, а не вручную закрывая их, иначе они будут течь при вызове исключения.)
EDIT: например, для использования учетных данных по умолчанию для прокси-сервера:
request.Proxy.Credentials = CredentialCache.DefaultCredentials;