тут не совсем то что я просил вот мой код из делфи мне нужно примерно так из шарпа:
if HTTP.ResultCode<>302
То-есть нужна сама команда...И я в шарпе 2 день><
Я показал свойство из которого выдерать статус код, дальше мог бы и сам додумать
Код:
private bool Authorize(string user, string password)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("URL");
//выполняем все условия для авторизации
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
return (int)response.StatusCode == 302; //возвращаем true если был редирект, и false если нет
}
или так
Код:
private bool Authorize(string user, string password)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("URL");
//выполняем все условия для авторизации
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
return response.StatusCode == HttpStatusCode.Redirect; //возвращаем true если был редирект, и false если нет
}
или чуть более понятный вариант
Код:
if(response.StatusCode == HttpStatusCode.Redirect)
{
//авторизация прошла успешно
}
Я показал свойство из которого выдерать статус код, дальше мог бы и сам додумать
Код:
private bool Authorize(string user, string password)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("URL");
//выполняем все условия для авторизации
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
return (int)response.StatusCode == 302; //возвращаем true если был редирект, и false если нет
}
или так
Код:
private bool Authorize(string user, string password)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("URL");
//выполняем все условия для авторизации
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
return response.StatusCode == HttpStatusCode.Redirect; //возвращаем true если был редирект, и false если нет
}
или чуть более понятный вариант
Код:
if(response.StatusCode == HttpStatusCode.Redirect)
{
//авторизация прошла успешно
}
Спасибо большое за помощь,но почему то пишет все время не правильная авторизация мой код:
Код:
WebRequest request = WebRequest.Create("http://passport.yandex.ru/passport?mode=auth&login="+textBox1.Text+"&passwd="+textBox2.Text);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if ((int)response.StatusCode == 302)
{
MessageBox.Show("Ура мы зашли");
}
else
{
MessageBox.Show("О нет мы не зашли");
}
Фишка в том что почему-то передается сразу и редирект 302 и 200,поетому оно пишет что не авторизовались
Последний раз редактировалось [Na`Vi]DendI; 11.07.2012 в 14:41.
[Na`Vi]DendI, да оно и не будет работать
[Ссылки могут видеть только зарегистрированные пользователи. ]
Видал сколько параметров? Пока не узнаешь откуда береться idkey не сможешь авторизоваться
Добавлено через 2 минуты
А я сам уже глянул, парсится с страницы
[Ссылки могут видеть только зарегистрированные пользователи. ]
________________
Talk is cheap. Show me the code
— Linus Torvalds
Последний раз редактировалось Yukikaze; 11.07.2012 в 14:31.
Причина: Добавлено сообщение
[Na`Vi]DendI, да оно и не будет работать
[Ссылки могут видеть только зарегистрированные пользователи. ]
Видал сколько параметров? Пока не узнаешь откуда береться idkey не сможешь авторизоваться
Добавлено через 2 минуты
А я сам уже глянул, парсится с страницы
[Ссылки могут видеть только зарегистрированные пользователи. ]
Я говорю там есть гет авторизация
[Ссылки могут видеть только зарегистрированные пользователи. ]
на делфи у меня именно так работает,после гет запроса проверка: if result code <> 302 then //авторизовались
string login = "zetaBetatest";
string password = "zetabetatest";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(string.Format("http://passport.yandex.ru/passport?mode=auth&login={0}&passwd={1}", login, password));
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
string html = sr.ReadToEnd();
if (html.Contains("Персональные данные")) Console.WriteLine("Authorize OK"); // если на странице есть надпись "Персональные данные" значит мы вошли
}
string login = "zetaBetatest";
string password = "zetabetatest";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(string.Format("http://passport.yandex.ru/passport?mode=auth&login={0}&passwd={1}", login, password));
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
string html = sr.ReadToEnd();
if (html.Contains("Персональные данные")) Console.WriteLine("Authorize OK"); // если на странице есть надпись "Персональные данные" значит мы вошли
}
Да способ не плохой,но при авторизации на yandex гет запросом идет не большая загрузка в 2-3 секунды тоесть если я хочу написать брут,при переборе, 2-3 секунды на каждую комбинацию уйдет очень много времени, данный способ отпадает,нужно разобраться с редиректом 302.
[Na`Vi]DendI, глупая затея брутить HTTP, для этих целей нужно использовать POP3
Я так тоже думал,но тут есть 1 хитрость, тут при поп запросе после 10 не верных вылазит капча,а при гет запросе капча вообще не вылазит,тоесть и скорость выше и прокси не нужны,так что все таки нужно искать выход для редиректа 302)
[Na`Vi]DendI, у меня вылезла капча при гет запросе, причем вешается она на IP
Да и чисто физически не может быть капчи при использовании POP3, там работа с сервером напрямую, максимум можно получить временную блокировку
[Na`Vi]DendI, у меня вылезла капча при гет запросе, причем вешается она на IP
Да и чисто физически не может быть капчи при использовании POP3, там работа с сервером напрямую, максимум можно получить временную блокировку
ну значит блокировку получают сразу, я просто точно знаю что поп и яндекс не совместимы для брута..А на счет гет запроса,быть такого не может у меня на бруте(делфи),капча не вылазила,а если и вылазила то он всеравно брутил если при капче валид акк то оно его помечало как валид(проверял на своем).