2015-06-18 3 views
0

Я пытаюсь войти в систему и создать сеанс на сайте ASP.NET программным путем с помощью Ruby Mechanize. Проблема в том, что я, похоже, не могу захватить три файла cookie, необходимые для входа/аутентификации.Получить файлы cookie для проверки подлинности ASP.NET с помощью Mechanize

Например, при использовании нормального браузера, таких как Chrome, после того, как браузер делает запрос POST к форме входа в системе с именем пользователя и паролем, три печенья установлено:

  • ASPXAUTH
  • ASP.NET_SessionId
  • UserName

При использовании Mechanize, чтобы попытаться войти, после того как форма Войти отправлена, Mechanize агента Mechanize::CookieJar содержит только один файл cookie: ASP.NET_SessionID.

Это означает, что все последующие запросы на страницы, стоящие за логином входа, терпят неудачу и жалуются, что «Сессия истекла» и «пожалуйста, войдите снова».

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

+0

Если в вашем браузере настроены файлы cookie, которые не механизируют, значит, есть некоторые javascript. Возможно, вам стоит подумать о переходе на Ватир. – pguardiario

+0

Это было правильно! Спасибо, я сделаю это своим собственным ответом. –

ответ

0

Оказалось, что некоторые (самые) щелчки кнопки ASP.NET обрабатываются через Javascript. Текущая версия Mechanize (2.7) не поддерживает взаимодействие с Javascript. Я переключился на Capybara WebKit в качестве безголового водителя. Тогда я смог взаимодействовать с кнопками, которые мне нужны.

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