есть страница, с нее нужно получить данные. Но это страница protected, т.е. нужно зайти как пользователь (т.е. ввести на странице логина логин и пароль) и потом только зайти на эту страницу. Как такое осуществить?
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
нет, ты не так понял

Нужно получить данные с другого сайта. У меня есть мой сайт, есть чужой сайт, на этом чужом сайте у меня есть аккаунт. На моей странице необходимо вывести защищенную паролем страницу с другого сайта
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, 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>>
Глянь
это например.
Раб, который обожает своего хозяина, уже не раб, а холуй.
В.И. Ульянов.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
спасибо тебе за статью
но что-то до конца не получается. Во-первых при таких раскладах 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
ссылка на оригинальное сообщение
не, все-таки я тебя обманул — мой вариант тоже не проскакивает, я просто в try-catch взял, а потом не заметил
И нашел версию без https — если просто в броузере GET'ом — то все работает. Но все-равно аутентификация не проходит — в answer'е все таже фигня
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
На самом деле куки можно проще получить из ответа — с помощью
request.CookieContainer.GetCookies(request.RequestUri);
ЗЫ. Статью давно писал, а подправить времени нет.
ЗЫ2. Возможно также сервер проверяет UserAgent.
Раб, который обожает своего хозяина, уже не раб, а холуй.
В.И. Ульянов.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
На самом деле куки можно проще получить из ответа — с помощью
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&password=bbb");
StreamReader reader = new StreamReader (data);
string s = reader.ReadToEnd ();
Response.Write(s);
data.Close ();
reader.Close ();
все-равно таже ошибка

С чего это оно еще может быть? что есть такого в броузере, чего нет в этом web-client?
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Все гораздо проще:
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);
И всего делов