Получите значение файла cookie .ASPXAUTH программно - PullRequest
0 голосов
/ 27 мая 2010

Есть ли способ получить значение .ASPXAUTH программно.

Пример. Я захожу на веб-сайт со своими собственными учетными данными (POST), а затем читаю ответ ... он не возвращает .APSXAUTH в CookieContainer, который я использую для отслеживания сеанса.

У кого-нибудь есть подсказка, как я могу получить его и отправить с последующими сообщениями и сообщениями?

[ПРАВИТЬ] Вот что я делаю, чтобы быть более конкретным:

  • отправить HTTP GET на страницу. читать значения, такие как _VIEWSTATE и т. д.
  • отправить HTTP POST на страницу входа. Включает в себя информацию для входа.
  • Сервер отправляет ответ 302 (перенаправление) на некоторую страницу по умолчанию. Предполагается, что файл cookie для проверки подлинности форм включен, но его нет.

Так что я подумал, что, возможно, есть лучший способ отследить сессию:

CookieContainer _cookieJar = new CookieContainer();

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_url);
request.CookieContainer = _cookieJar;

1 Ответ

1 голос
/ 28 мая 2010

Итак, подытожим ответ:

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

Сначала создайте начальный запрос GET, а затем выполните последующие POST запросы, которые будут выполнять обратную передачу. Запрос и ответы должны быть сформулированы следующим образом:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_url);
request.CookieContainer = _cookieJar;
HttpWebResponse httpsResponse = (HttpWebResponse)request.GetResponse();

Класс CookieContainer обрабатывает файлы cookie, как и ожидалось.

И если ваш ответ закодирован с помощью Gzip, просто включите следующую строку:

request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

до звонка request.GetResponse()

Надеюсь, это поможет кому-то там.

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