Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330

Авторизация на сайте

24.05.2016, 09:06. Показов 1058. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь авторизоваться на сайте http://xterium.ru/login

Тестовые данные:
E-mail: c2785429@trbvn.com
Логин: c2785429
Пароль: c2785429

HTML5
1
2
3
4
5
6
7
8
9
10
<form method="POST" action="/users/login">
                            <label>E-mail:</label>
                            <input type="text" placeholder="E-mail" required="" name="data[email]" value="">
                            <label>Пароль:</label>
                            <input type="password" placeholder="Пароль" required="" name="data[passw]" value="">  
                            <label>Вселенная:</label>
                            <select class="sel_uni_top" name="data[universe]"><option value="1">RU 1 [37%]</option><option value="2">RU 2 [99%]</option><option value="3">RU 3 [99%]</option><option selected="" value="5">RU 4 [41%]</option></select>   
                            <label>&nbsp;</label>          
                            <input class="button" type="submit" name="data[submit]" value="В игру">                    
                        </form>
Функция
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
private void post_http(string url, string data)//создаём метод с двумя аргументами url и data
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);//создаём экзепляр класса HttpWebRequest, req
            req.Method = "POST"; // выбераем метод запроса 
            req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; // добавляем заголовок и его значение
            req.CookieContainer = cookie; // прикрепляем к запросу куки
            req.Headers.Add("DNT", "1");// добавляем заголовок и его значение
            req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0"; // можно выбрать другой UserAgent opera, chrome, IE
            req.Referer = url; // от куда мы пришли
            req.ContentType = "application/x-www-form-urlencoded"; // определяет тип документа для ответа, так же есть multipart
            using (var requestStream = req.GetRequestStream())//отправляем поток данных
            using (var sw = new StreamWriter(requestStream)) //создаём переменную в которой будет храниться запрос
            {
                sw.Write(data);//записываем в поток данные
            }
 
            using (var responseStream = req.GetResponse().GetResponseStream())//возвращаем поток данных
            using (var sr = new StreamReader(responseStream))//переменная в которой храниться ответ
            {
                var result = sr.ReadToEnd();//считывем ответ в переменную
                using (var sw = new StreamWriter("D:\\page.html", false, Encoding.GetEncoding(1251)))//false значит что файл будет перезаписываться каждый раз, и указываем кодировку ту что была на сайте
                    sw.Write(result);//записываем
            }
            
        }
Вызов
C#
1
post_http("http://xterium.ru/login/users/login.php", "data[email]=c2785429@trbvn.com&data[passw]=c2785429&data[universe]=5&data[submit]=В+игру");
Не получается, авторизация просто не проходит..
Может кто с кодом подсобить? Вчера весь день просидел пытаясь в тупую авторизоваться..

Вот что ловит сниффер при авторизации через сайт вручную:
POST /users/login HTTP/1.1
data%5Bemail%5D=c2785429@trbvn.com&data% 5Bpassw%5D=c2785429&data%5Bsubmit%5D=%D0 %92%D0%BE%D0%B9%D1%82%D0%B8

Вот что ловит сниффер при авторизации моим запросом
POST /login/users/login.php HTTP/1.1
data[email]=c2785429@trbvn.com&data[passw]=c2785429&data[universe]=5&data[submit]=В+игру

Я какие уже ссылки в код не подставлял...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.05.2016, 09:06
Ответы с готовыми решениями:

Авторизация на сайте
Добрый день, форумчане! необходимо программно авторизоваться на сайте https://www.futbin.com. На сайте, как я понял, стоит CSRF. Через...

Авторизация на сайте
Создаю POST запрос, по данным из HTTP Анализатора. HttpWebRequest request =...

Авторизация на сайте
Добрый вечер, задался идеей реализовать программный вход на сайт для дальнейшего парсинга..Вообщем вся проблема в том что не получается...

5
 Аватар для p_r_a_g_m_a
112 / 64 / 23
Регистрация: 08.03.2012
Сообщений: 211
24.05.2016, 10:29
Попробуйте кодировать строку POST запроса в строку URL:

C#
1
data = System.Web.HttpUtility.UrlEncode(data)
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
24.05.2016, 11:23  [ТС]
Цитата Сообщение от p_r_a_g_m_a Посмотреть сообщение
Попробуйте кодировать строку POST запроса в строку URL:
неа, с кодировкой не угадали) Думаете проблема в правильной передачи кодировки? Мне кажется тут по мимо кодировки еще и с coockie проблема..
data%5bemail%5d%3dc2785429%40trbvn.com%2 6data%5bpassw%5d%3dc2785429%26data%5buni verse%5d%3d5%26data%5bsubmit%5d%3d%d0%92 %2b%d0%b8%d0%b3%d1%80%d1%83

Добавлено через 3 минуты
Вот пример еще прощще. Через webrowser авторизуюсь вручную. Потом подсвовываю куки в GET запрос, запрос не проходит, возвращается страница авторизации..

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#region Cookie
        //Получение cookie из webrowser1
        public CookieContainer GetCookieContainer()
        {
 
            CookieContainer container = new CookieContainer();
 
            foreach (string cookie in webBrowser1.Document.Cookie.Split(';'))
            {
                string name = cookie.Split('=')[0];
                string value = cookie.Substring(name.Length + 1);
                string path = "/";
                string domain = "mass.xterium.ru"; //change to your domain name
                container.Add(new Cookie(name.Trim(), value.Trim(), path, domain));
            }
 
            return container;
        }
        #endregion
 
#region GET-запрос
        //Отправка GET запроса
        private string GET(string Url, string Data)
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url);
            req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0";
            req.CookieContainer = new CookieContainer();
            req.CookieContainer = GetCookieContainer();
            //req.Headers.Add("DNT", "1");
            req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            Stream stream = resp.GetResponseStream();
            StreamReader sr = new StreamReader(stream);
            string Out = sr.ReadToEnd();
            sr.Close();
            return Out;
        }
        #endregion
Вызов:
C#
1
GET("http://mass.xterium.ru/game.php", "");
0
 Аватар для p_r_a_g_m_a
112 / 64 / 23
Регистрация: 08.03.2012
Сообщений: 211
24.05.2016, 11:49
Да, скорее всего дело в cookie. Проверяйте содержимое вашего. И данные заголовка запроса проверьте.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Request Headers:
POST /users/login HTTP/1.1
Host: xterium.ru
Connection: keep-alive
Content-Length: 131
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://xterium.ru
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://xterium.ru/login
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4,uk;q=0.2,cs;q=0.2
Cookie: PHPSESSID=qius3duledf05n2gifsh2ijlv0
Code
1
2
Form Data:
data%5Bemail%5D=c2785429%40trbvn.com&data%5Bpassw%5D=c2785429&data%5Buniverse%5D=1&data%5Bsubmit%5D=%D0%92+%D0%B8%D0%B3%D1%80%D1%83
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
24.05.2016, 12:25  [ТС]
Цитата Сообщение от p_r_a_g_m_a Посмотреть сообщение
Проверяйте содержимое вашего.
Это у вас программный запрос или с браузера?
0
 Аватар для p_r_a_g_m_a
112 / 64 / 23
Регистрация: 08.03.2012
Сообщений: 211
24.05.2016, 14:41
Из браузера
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.05.2016, 14:41
Помогаю со студенческими работами здесь

Авторизация на сайте
Можно тут попросить у кого-нибудь написать авторизацию на сайте https://armorgames.com/login с сохранением кукисов, а то разобраться не...

Авторизация на сайте C#
Привет, уважаемые форумчане! Я заядлый игрок в WOT и поэтому решил написать небольшую прогу, в виде гаджета, которая могла бы мне...

Авторизация на сайте
Здравствуйте! Возникла проблема, надеюсь на вашу помощь. Есть сайт - тык, необходимо каким-либо способом авторизоваться программно на...

Авторизация на сайте
Мне надо авторизоваться на сайте google.ru почты и взять от туда последнее письмо. Я не нашел ни какой информации как авторизоваться на...

Авторизация на сайте.
Нужен пример авторизации на сайте, желательно с комментами... Выложите плз у кого есть... Если будет проект Microsoft VS то вообще...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru