Лучший отвечающий
Авторизация на вэб сайте

Вопрос
-
Доброго времени суток. Решил попробовать реализовать на c# приложение клиент для получения информации с сайта - у меня вопрос- Можете подробно объяснить как выполнить авторизацию или где можно почитать хорошее описание.
Код странички авторизации
<html> <head> <title>Âèäåî-êàòàëîã</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <style type="text/css"> * {font-size:100.01%; font-family: Arial;} body {font-size:0.8em} form {margin:0} table table td {padding:0.25em} </style> </head> <body onLoad='document.getElementById("myform").action = window.location.toString();' > <table border="0" width="100%" height="100%"> <tr> <td align="center"> <div style='width:23em; text-align:left; border: 1px solid silver; background: #F5F5F5; padding:15px;'><span style='font-size:150%; font-weight:bold; color:black;'>Âõîä</span><br><span style='font-size:85%; color:gray'>äëÿ çàðåãèñòðèðîâàííûõ ïîëüçîâàòåëåé</span><form action='?' method='post' id='myform'><input type='hidden' name='logon' value='1'><table border='0' width='100%'><tr><td>Ëîãèí:</td><td><input name='login'></td></tr><tr><td>Ïàðîëü:</td><td><input name='pass' type='password'></td></tr><tr><td colspan='2'><input id='remember' type='checkbox' value='1' name='remember'><label for='remember'>Àâòîìàòè÷åñêè âõîäèòü</label></td></tr><tr><td colspan='2' align='center'><input type='submit' value='OK'></td></tr></table><a href='?register=1'>Ðåãèñòðàöèÿ</a></form></div><br> </td> </tr> </table> </body> </html>
- Перемещено Tagore Bandlamudi 1 октября 2010 г. 21:28 MSDN Forums consolidation (От:Visual C#)
24 августа 2010 г. 23:20
Ответы
-
Проблема решилась с помощью http сниффера, HttpWebRequest и HttpWebResponse
единственное что осталось для меня не понятным : авторизируемся к примеру на вконтакте отсылаем POST запрос и сохраняем CookieCollection содержащую необходимы для дальнейшей идентификации кукис. так вот если передавать в метод с GET запросом, данный CookieCollection то он почему то не передаётся
public HttpWebResponse GetPage(string url, CookieCollection cookies) { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); request.Method = "GET"; request.Accept = "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, */*"; request.Headers.Add("Accept-Language", "ru-RU"); request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)"; request.AllowAutoRedirect = true; request.CookieContainer = new CookieContainer(); request.CookieContainer.Add(cookies); return (HttpWebResponse)request.GetResponse(); }
если же явно создать кукис то всё работает
Cookie cook = new Cookie("remixsid",cookies["remixsid"].Value.ToString(),"/","vkontakte.ru");
всё эту проблему тоже решил - при получение кукиса в его параметр Domain попадала точка ".vkontakte.ru"
- Помечено в качестве ответа Алексей_Зенков 30 августа 2010 г. 23:08
- Изменено Алексей_Зенков 31 августа 2010 г. 2:08 добавлено
30 августа 2010 г. 23:02
Все ответы
-
Попробуйте использовать авторизацию на основе WCF. Почитать можно тут.
- Предложено в качестве ответа I.Vorontsov 30 августа 2010 г. 5:55
25 августа 2010 г. 6:27 -
Проблема решилась с помощью http сниффера, HttpWebRequest и HttpWebResponse
единственное что осталось для меня не понятным : авторизируемся к примеру на вконтакте отсылаем POST запрос и сохраняем CookieCollection содержащую необходимы для дальнейшей идентификации кукис. так вот если передавать в метод с GET запросом, данный CookieCollection то он почему то не передаётся
public HttpWebResponse GetPage(string url, CookieCollection cookies) { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); request.Method = "GET"; request.Accept = "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, */*"; request.Headers.Add("Accept-Language", "ru-RU"); request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)"; request.AllowAutoRedirect = true; request.CookieContainer = new CookieContainer(); request.CookieContainer.Add(cookies); return (HttpWebResponse)request.GetResponse(); }
если же явно создать кукис то всё работает
Cookie cook = new Cookie("remixsid",cookies["remixsid"].Value.ToString(),"/","vkontakte.ru");
всё эту проблему тоже решил - при получение кукиса в его параметр Domain попадала точка ".vkontakte.ru"
- Помечено в качестве ответа Алексей_Зенков 30 августа 2010 г. 23:08
- Изменено Алексей_Зенков 31 августа 2010 г. 2:08 добавлено
30 августа 2010 г. 23:02 -
Если речь идет о сайте ВКОНТАКТЕ, то там есть официальные API, в т. ч. и для авторизации31 августа 2010 г. 7:01
-
КЭП спасибо конечно, но линки внизу странички тоже смотрел ;)
Я тему в общем изучал вконтакт частный случай
31 августа 2010 г. 9:09