Господа посаны, Посоветуйте или ткните, что почитать. Задача - есть один гадский ресурс, написанный на asp.net Сабмит на форме авторизации выглядит так: Code: <input type="submit" name="ctl00$LoginLink" value="Войти" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$LoginLink", "", true, "", "", false, false))" id="ctl00_LoginLink" class="tx"> JS выглядит так: / Code: /<![CDATA[ var theForm = document.forms['aspnetForm']; if (!theForm) { theForm = document.aspnetForm; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } //]]> Вот эти вышеприведенные изыски формируют переменную viewstate, которая судя по снифферу и передается пост запросом при авторизации Нифига не могу эмулировать. Даже не знаю с какой стороны подойти. Может кто сталкивался, подскажите? пс Пишу на сишарпе
Viewstate не формируется динамически, она сразу задана, как и EventTarget, EventAgrument. Пройдись поиском по исходнику
Ну так если бы она была сразу задана - я бы ее спарсил и отправил постом. Но содержимое viewstate при гет запросе страницы авторизации и post запросе при клике на сабмит отличается килобайт так на 5ь
ванга в топике http://video.votpusk.ru/ походу этот. ну и что то я не понял тогда ТСа. в исходнике лежит вьюстат между <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/ и " парсь. вспомнил сайт мтс. если там так же как на мтсе то кстате задолбаешься там авторизоваться особенно если на начальном этапе возникают такие вот вопросы.
Сайт не тот, но авторизация 1в1. Дык, а толку то ее парсить? Post запрос состоит из пустых EVENTAGRET, EVENTARGUMENT и VIEWSTATE. Захожу, беру гетом страницу, паршу линк на который надо пост отправить, паршу значение вьюстейта Отправляю пост со всем вышеуказанным. Ну и как следовало ожидать хрен вам А логин с паролем куда тулить то? )) Объясните нубу на пальцах ) Раскодил кста viewstate из base64, куча всякого говна на 20 килобайт, вот нафига такое счастье вообще делать )
оу сори. непоснифал даже. проверил с невалидным логином/паролем. URL=http://www.votpusk.ru/auto/LoginAct.asp отправляем туда пост данные: POSTDATA=Login=westoust%40thismail.ru&Passw=qweqwe&x=45&y=10 как то так. далее вам скорее всего пришлют куки и ссыль редиректа. (смотрите снифером(я юзаю для таких целей TamperData - плагин для мазиллы)) про почитать, попробуйте поищите в этом разделе чьи нибудь исходники. помсотрите кто как делает.
Зарегался на вотпуске, поснифал с валидными данными - запрос выглядит так: Code: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Referer: http://video.votpusk.ru/ Accept-Encoding: gzip,deflate,sdch Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4 Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3 Cookie: блабла куки __EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=много блабла в base64 Ну и соответственно редиректит на страничку с бест видео ) как я понимаю из исходника формы (могу быть ваще не прав), при вводе логина и пароля они постбеком отправляются на сервер и чекаются там на валид. Как это эмулировать средствами httprequest ума не приложу Хотя попробую с таким запросом и валид данными, может прокатит POSTDATA=Login=westoust%40thismail.ru&Passw=qweqwe&x=45&y=10 и да про снифферы и все прочее мне объяснять не надо, я не настолько нуб )
по поводу x=random y=random это вроде не рандом а координаты мышки на кнопке. (реализуется рандомом (выясняем примерно минимальные и максимальные значения и генерим а может и пох ваще на них надо тестить))
>Как это эмулировать средствами httprequest ума не приложу ну я вам тоже не помогу т.к. не знаю шарпа. подсмотрите в гугле, поищите в этом разделе повнимательнее что непонятно, или ждите компитентных людей
да не за что. запросы то по идее не отличаются, (то есть в любом случае сначала шлем логин/пас) а уже ответ будет по идее отличаться. счас зарегаю там ак, схематично/наглядно вам опишу логику авторизации. что б вам полегче было.
в общем, чуть выше я вам запрос неправильный посоветовал. он на том сайте хз для кого. но не для обычных юзеров. собсно я там зарегался, посмотрел повнимательнее и вот как проходит авторизация: заходим на http://user.votpusk.ru/login.aspx парсим переменные: __VIEWSTATE __EVENTVALIDATION доавляем в пост параметры ctl00%24ContentPlaceHolder1%24MasterLogin2%24txLogin=наш_логин@yandex.ru ctl00%24ContentPlaceHolder1%24MasterLogin2%24txPassw=наш_пароль ctl00%24ContentPlaceHolder1%24MasterLogin2%24chRememb=on//еще какой то параметр ctl00%24ContentPlaceHolder1%24MasterLogin2%24Button1.x=66 ctl00%24ContentPlaceHolder1%24MasterLogin2%24Button1.y=23 шлем постом все это дело сюда: http://user.votpusk.ru/login.aspx получаем кукис .ASPXAUTH= и ссыль Location=http://user.votpusk.ru/ сохраняем кукис и идем по ссылю.