2010-02-04 3 views
1

Мне нужно будет создать простую программу, которая регистрируется с заданными учетными данными на определенном веб-сайте, а затем перейти к некоторому элементу (ссылке). Это возможно (я имею в виду эту вещь Authlogin)?HttpRequest: пройти через AuthLogin

EDIT: SORRY - Я нахожусь на своей машине, и я не могу нажать «Проголосовать» или «Добавить комментарий» - на странице написано «Выполнено, но с ошибками на странице» (IE ..). Я ценю ваши ответы и комментарии, вы мне очень помогли!

+0

@Petr: Я сильно удивлен видеть, что вы никогда не голосовали, либо вверх, либо вниз, либо !. Вы знаете, что можете нажимать на эти стрелки выше и ниже нулей рядом с ответами? : P –

+1

@ Рубен, может быть, он тоже не читает комментарии. – Benny

+0

@ Benny: Эй, давайте не начинаем спорить и ныть здесь - у некоторых людей нет времени болтать и прокомментировать весь день: D По крайней мере, он принимает, и это имеет значение для чего-то ... (И у него будет отличный вкус согласитесь с моим: D) Может быть, нам нужен значок «читать комментарии», чтобы идти в одиночку, он обожал комментатора [у него уже есть]. Любые идеи, предлагаемые Петром: P –

ответ

0

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

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

0

Да. возможно.

см следующий код:

 HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri); 
     req.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested; 
     req.Credentials = new NetworkCredential("admin", "admin"); 
     req.PreAuthenticate = true; 
1

Основные вещи, чтобы сделать являются:

  1. Начните использовать Fiddler, чтобы увидеть, что должно быть отправлено, и каким образом
  2. Предположим, что мы говорим обычной веб-форме, вам, вероятно, понадобится использовать CookieContainer с WebRequest с, чтобы принять файлы cookie, которые поступают из запроса на вход, а затем повторно отправить их при отправке подпоследовательности запросы лор (например контекст не автомагически поддерживается HttpWebRequest): -

    CookieContainer _cookieContainer = new CookieContainer(); 
    ((HttpWebRequest)request).CookieContainer = _cookieContainer; 
    
Смежные вопросы