Как я могу получить учетные данные IE для использования в моем коде? - PullRequest
2 голосов
/ 15 апреля 2009

В настоящее время я разрабатываю плагин 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 и использовать их в своем коде, чтобы назначить их для request.Credentials .

Может быть, что-то вроде этого:

request.Credentials = IE.DefaultCredentials;

1 Ответ

5 голосов
/ 15 апреля 2009

Вы устанавливаете учетные данные для сайта , но вам нужны учетные данные для прокси .

Набор request.Proxy.Credentials.

(Кроме того, используйте операторы using для ответа / потока / читателя, а не закрывайте их вручную, иначе они будут вытекать при возникновении исключения.)

РЕДАКТИРОВАТЬ: Например, чтобы использовать учетные данные по умолчанию для прокси-сервера:

request.Proxy.Credentials = CredentialCache.DefaultCredentials;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...