надо залогиниться программно
От: 55aaf925-4dbf-4578-9e3c-2f63d11aeda5  
Дата: 17.05.05 20:06
Оценка:
есть страница, с нее нужно получить данные. Но это страница protected, т.е. нужно зайти как пользователь (т.е. ввести на странице логина логин и пароль) и потом только зайти на эту страницу. Как такое осуществить?
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
надо залогиниться программно
От: Аноним  
Дата: 17.05.05 20:41
Оценка: 3 (1)
<a href="http://www.gotdotnet.ru/LearnDotNet/ASPNET/54591.aspx">http://www.gotdotnet.ru/LearnDotNet/ASPNET/54591.aspx&lt;/a&gt;

Do you speak C#?


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
надо залогиниться программно
От: Аноним  
Дата: 17.05.05 20:41
Оценка:
вобщем
http://www.gotdotnet.ru/LearnDotNet/ASPNET/54591.aspx

Do you speak C#?


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
RE: надо залогиниться программно
От: Аноним  
Дата: 18.05.05 04:22
Оценка:
нет, ты не так понял
Нужно получить данные с другого сайта. У меня есть мой сайт, есть чужой сайт, на этом чужом сайте у меня есть аккаунт. На моей странице необходимо вывести защищенную паролем страницу с другого сайта


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: надо залогиниться программно
От: mogadanez Чехия  
Дата: 18.05.05 05:57
Оценка:
Здравствуйте, 55aaf925-4dbf-4578-9e3c-2f63d11aeda5, Вы писали:

544>есть страница, с нее нужно получить данные. Но это страница protected, т.е. нужно зайти как пользователь (т.е. ввести на странице логина логин и пароль) и потом только зайти на эту страницу. Как такое осуществить?


HttpWebRequest/HttpWebResponse

пример есть тут:
http://blogs.gotdotnet.ru/personal/Nisus/PermaLink.aspx?guid=d8d2ae0c-d7b1-4aab-b7d7-7acb699767bf
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
RE[2]: надо залогиниться программно
От: Аноним  
Дата: 18.05.05 07:54
Оценка:
Глянь это например.
Раб, который обожает своего хозяина, уже не раб, а холуй.
В.И. Ульянов.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
RE[3]: надо залогиниться программно
От: Аноним  
Дата: 18.05.05 20:49
Оценка:
спасибо тебе за статью

но что-то до конца не получается. Во-первых при таких раскладах cookieVal


[0] "NINTENDO=195.24.148.37.1116448687134219; path=/; expires=Mon" string
[1] " 17-May-10 20:38:07 GMT; domain=.nintendo.com" string
[2] "JSESSIONID=9890EFFCEED51E9CDF938274B202E094; Path=/cpp" string
[3] "cookieTest=testing; Path=/" string
на [1] обваливается с эксепшином
Exception Details: System.IndexOutOfRangeException: Index was outside the bounds of the array.

Source Error:

Line 62: cookie.Add(new Cookie(cookie1[0].Split(new char[] {'='})[0], cookie1[0].Split(new char[] {'='})[1],
Line 63: cookie1[1].Split(new char[] {'='})[1], cookie1.Length > 2 ? cookie1[2].Split(new char[] {'='})[1] : ""));
как я предполагаю из-за того, что в [0] массив из 3-х элементов, а в [1] — уже из 2-х. Переписал этот код так:
cookie.Add(new Cookie(cookie1[0].Split(new char[] {'='})[0], cookie1[0].Split(new char[] {'='})[1],
cookie1[1].Split(new char[] {'='})[1], ""));


вроде проскакивает этот участок, но авторизация не проходит. Посмотрел что в answer — там страница с надписью :

\r\nTo login to My Nintendo you must have cookies enabled on your browser. Please see our Privacy Policy for additional information on how cookies are used


чего это вдруг куков нету?? может из-за того, что страница https?


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
RE[3]: надо залогиниться программно
От: Аноним  
Дата: 18.05.05 21:04
Оценка:
не, все-таки я тебя обманул — мой вариант тоже не проскакивает, я просто в try-catch взял, а потом не заметил
И нашел версию без https — если просто в броузере GET'ом — то все работает. Но все-равно аутентификация не проходит — в answer'е все таже фигня


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
RE[4]: надо залогиниться программно
От: Аноним  
Дата: 18.05.05 21:52
Оценка:
На самом деле куки можно проще получить из ответа — с помощью
request.CookieContainer.GetCookies(request.RequestUri);

ЗЫ. Статью давно писал, а подправить времени нет.
ЗЫ2. Возможно также сервер проверяет UserAgent.
Раб, который обожает своего хозяина, уже не раб, а холуй.
В.И. Ульянов.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
RE[5]: надо залогиниться программно
От: Аноним  
Дата: 18.05.05 23:02
Оценка:
На самом деле куки можно проще получить из ответа — с помощью
request.CookieContainer.GetCookies(request.RequestUri);

ЗЫ. Статью давно писал, а подправить времени нет.
ЗЫ2. Возможно также сервер проверяет UserAgent.


пробую уже хотя бы авторизироваться:


WebClient client = new WebClient ();

client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705");

Stream data = client.OpenRead ("http://www.nintendo.com/cpp/login/processLogin.do?userName=aaa&amp;password=bbb");
StreamReader reader = new StreamReader (data);
string s = reader.ReadToEnd ();
Response.Write(s);
data.Close ();
reader.Close ();

все-равно таже ошибка С чего это оно еще может быть? что есть такого в броузере, чего нет в этом web-client?


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[6]: надо залогиниться программно
От: ivasi  
Дата: 09.12.05 17:25
Оценка:
Все гораздо проще:



string content =
"<HTML><HEAD></HEAD><body onLoad='submitForm()'>"+
"</FORM><form id=YourForm action=\"you_url \" METHOD=\"POST\" >"+
"<input type= \"hidden\" name=\"username\" value=\"username\" >"+
"<input type=\"hidden\" name=\"password\" value=\"password\" ></form>"+
"<script>document.forms[0].submit();</script></Body></HTML>";
Response.Clear();
Response.Write(content);


И всего делов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.