Как я могу программным образом войти на веб-сайт ASP.NET, который использует проверку подлинности с помощью форм?

Я пытаюсь автоматизировать тестирование веб-сайта ASP.NET (не MVC), который использует проверку подлинности с помощью форм.

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

Я пробовал отправлять на страницу LogOn (поставляя подходящее имя пользователя и пароль), но это не удается - и я думаю, что это не удается, потому что веб-сайт использует проверку событий ASP.NET. (Если я использую Fiddler для просмотра того, что отправлено в браузер и из него, есть элемент скрытой формы __EVENTVALIDATION).

Я предполагаю, что мне нужно будет однажды посетить страницу входа в систему, получить значение __EVENTVALIDATION и включить, когда я отправляю имя пользователя и пароль на страницу LogOn?

Это все, что мне нужно сделать, или подделывает веб-сайт, основанный на проверке подлинности на основе форм, без запуска?

0
04 мая '15 в 14:05
источник поделиться
1 ответ

Ну, в случае, если это поможет кому-то еще, я смог получить эту работу, выпустив запрос GET на страницу LogOn, извлекая значения __VIEWSTATEENCRYPTED скрытой формы __EVENTVALIDATION, __VIEWSTATE и __VIEWSTATEENCRYPTED из возвращаемого HTML, а затем POSTing эти значения обратно на страницу LogOn вместе с остальными моими значениями формы (имя пользователя и пароль).

Я использую один экземпляр HttpClient всем протяжении, поэтому cookie сеанса ASP.NET сохраняется между запросами.

+2
04 мая '15 в 17:01
источник

Посмотрите другие вопросы по меткам или Задайте вопрос