2010-12-02 3 views
1

Я довольно новичок в этом, и мне больше нечего просить. Я пытаюсь получить доступ к веб-странице программным способом (C#) для некоторого программного обеспечения для веб-утилизации. Я выяснил процесс использования классов HttpWebResponse и HttpWebRequest для входа в систему через форму веб-страницы, но у меня есть веб-сайт, который имеет двухэтапную процедуру входа в систему.Как обрабатывать всплывающие проверки подлинности?

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

После прохождения первого входа второй логин - это просто веб-форма, с которой я мог бы справиться сам с тем, что я уже узнал.

Мой вопрос: Как программно предоставить информацию для входа для запроса всплывающей аутентификации?

EDIT

Просто для получения дополнительной информации. Скрипач дает хосту как CONNECT при попытке доступа к веб-сайту.

EDIT

Я попытался использовать ответ MrEye в ниже, и, хотя, казалось, чтобы получить меня немного дальше, все еще имея зависаний. Я получаю вопросы сертификата, поэтому после некоторой работы Google я нашел обходной путь для него, добавив следующий код:

ServicePointManager.ServerCertificateValidationCallback += 
      delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) 
     { 
      return true; 
     }; 

Теперь я получаю System.Net.WebException со значением «Сервер удалить возвратил ошибку: (401) Несанкционированный. " Исключением является Status - ProtocolError, хотя я еще не смог его получить. Я точно знаю, что введенное имя пользователя/пароль действительны.

+0

401 ответа HTTP указывает на то, что удаленный сервер отверг учетные данные, которые Вы представили ему, я знаю вас сказал, что вы уверены, что они верны, насколько уверены определенные;). Не могли бы вы разместить код для HttpWebRequest? – MrEyes 2010-12-03 00:06:36

ответ

1

Все, что вам нужно сделать, это присвоить объекту NetworkCredential свойство Credentials объекта HttpWebRequest, который вы создали. Например:

myWebRequest.Credentials = new NetworkCredential("username","password"); 

В зависимости от сервера вы подключаетесь к вам может понадобиться:

myWebRequest.PreAuthenticate = true; 
+0

Наконец-то он работал, это не имело никакого отношения к учетным данным, которые я предоставлял, они были правильными, но мне нужно было разрешить перенаправление, а URL-адрес был немного неправильным. Благодаря тонну! – Anthony 2010-12-03 12:40:05

Смежные вопросы