Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Авторизация через Html Страницу

17K
04 июня 2006 года
Ram842
2 / / 04.06.2006
Доброго времени суток. У меня такой вопрос, как можно авторизоваться
на сайте через Html страницу, и как потом от неё отсоединиться? Например: на сайте есть поля Login, Password и кнопка авторизации как
ввести значения и "нажать" кнопку.
[color=red]Мне кажется Вы уже сделали подобную тему в другом разделе. Не нужно так больше впредь делать.[/color]
273
04 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
Могу подсказать, как это можно замутить на C#.
 
Код:
[FONT=Courier New][COLOR=mediumturquoise]HttpWebRequest[/COLOR] Request = ([COLOR=mediumturquoise]HttpWebRequest[/COLOR])WebRequest.Create([COLOR=blue]"[/COLOR][/FONT][FONT=Courier New][COLOR=blue]www.blabla.ru/auth.php[/COLOR][/FONT][FONT=Courier New][COLOR=blue]"[/COLOR]); [COLOR=green]//делаем запрос[/COLOR][/FONT]
[FONT=Courier New][COLOR=deepskyblue]HttpWebResponse[/COLOR] Response = ([COLOR=deepskyblue]HttpWebResponse[/COLOR])Request.GetResponse();[COLOR=#008000]//получаем ответ[/COLOR][/FONT]
[FONT=Courier New][COLOR=deepskyblue]StreamReader[/COLOR] sr = [COLOR=blue]new[/COLOR] [COLOR=deepskyblue]StreamReader[/COLOR](Response.GetResponseStream());[COLOR=green]//получаем поток для чтения[/COLOR][/FONT]
[FONT=Courier New][COLOR=blue]string[/COLOR] htmlCode = sr.ReadToEnd(); [COLOR=green]//считали весь HTML-код[/COLOR][/FONT]
[FONT=Courier New]Response.Close(); [COLOR=green]//обязательно закрываем сессию соединения[/COLOR][/FONT]

Далее идея состоит в том, чтобы поместить в HTML-код нужные значения пароля и имени пользователя. Делается это так: качаем любой парсер HTML кода. Если ты качнул парсер, написанный не под .NET, то из программы на C# сохраняем полученный HTML код в файл:

 
Код:
[FONT=Courier New][COLOR=deepskyblue]StreamWriter[/COLOR] sw = [COLOR=blue]new[/COLOR] [COLOR=deepskyblue]StreamWriter[/COLOR]("content.html"); [COLOR=green]//создаём поток записи и направляем его на файл[/COLOR][/FONT]
[FONT=Courier New]sw.Write(htmlCode); [COLOR=green]//пишем скачанную строку[/COLOR][/FONT]
[FONT=Courier New]sw.Close(); [COLOR=green]//закрываем поток[/COLOR][/FONT]

Далее имеем в файле content.html скачанную страницу автоизации. Имеющимся парсером меняем HTML код и заполняем поля. Алгоритм примерно такой: нужно определить, в каких контролах должны содержаться вводимые данные, имеют ли они свой Id. Допустим, выглядят они так:
 
Код:
<input type="text" id="userName" name="userName">
<input type="password" id="userPswd" name="userPswd">

При помощи парсера нужно изменить значение атрибута Value. Приведу пример, как это делается на C# в ASP.NET:
 
Код:
[FONT=Courier New][COLOR=deepskyblue]HtmlInputText[/COLOR] userName = ([COLOR=deepskyblue]HtmlInputText[/COLOR])Page.FindControl([COLOR=blue]"userName"[/COLOR]);[/FONT]
[FONT=Courier New]userName.Attributes[[COLOR=blue]"Value"[/COLOR]]="нужное имя пользователя";[/FONT]
[FONT=Courier New][COLOR=deepskyblue]HtmlInputText[/COLOR] userPswd = ([COLOR=deepskyblue]HtmlInputText[/COLOR])Page.FindControl([COLOR=blue]"userPswd"[/COLOR]);[/FONT]
[FONT=Courier New]userPswd .Attributes[[COLOR=blue]"Value"[/COLOR]]=[COLOR=blue]"нужный пароль"[/COLOR];[/FONT]

Готово, скидываем изменённый HTML код обратно в content.html. Теперь нужно отправить серваку заполненную страницу. Пишем прогу на C#:
 
Код:
[FONT=Courier New][COLOR=deepskyblue]StreamReader[/COLOR] htmlContent = [COLOR=blue]new[/COLOR] [COLOR=deepskyblue]StreamReader[/COLOR]([COLOR=blue]"content.html"[/COLOR]); [/FONT]
[FONT=Courier New][COLOR=#48d1cc]HttpWebRequest[/COLOR] Request = ([COLOR=mediumturquoise]HttpWebRequest[/COLOR])WebRequest.Create([COLOR=blue]"[/COLOR][/FONT][FONT=Courier New][COLOR=blue]www.blabla.ru/auth.php[/COLOR][/FONT][FONT=Courier New][COLOR=blue]"[/COLOR]); [COLOR=green]//снова запрос[/COLOR][/FONT]
[FONT=Courier New][COLOR=deepskyblue]StreamWriter[/COLOR] serverRequest = [COLOR=blue]new[/COLOR] [COLOR=deepskyblue]StreamWriter[/COLOR](Request.GetRequestStream()); [COLOR=green]//создаём поток управления для отправки данных на сервер.[/COLOR][/FONT]
[FONT=Courier New]serverRequest.Write(htmlContent.ReadToEnd()); [COLOR=green]//скармливаем серваку содержимое файла [/COLOR][/FONT]
[FONT=Courier New][COLOR=#00bfff]HttpWebResponse[/COLOR] Response = ([COLOR=deepskyblue]HttpWebResponse[/COLOR])Request.GetResponse();[COLOR=#008000]//получаем ответ на авторизацию[/COLOR][/FONT]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог