Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
2 / 2 / 1
Регистрация: 09.10.2013
Сообщений: 104

Программа для авторизации на сайте

26.03.2014, 17:39. Показов 6137. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые пользователи, помогите написать программу которая будет авторизироваться на каком либо сайте, например на том же киберфоруме )
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.03.2014, 17:39
Ответы с готовыми решениями:

Зависает программа авторизации на сайте Мой Мир
Здравствуйте ! При исполнении кода (ниже), вся программа в том числе и webBrowser зависают. Суть самой программы - авторизоваться на сайте...

Код для авторизации на сайте
Здравствуйте.Очень срочно нужен пример кода для авторизации на сайте vkontakte.ru.За ранее благодарен.

Авторизации на сайте не проходит успешно
Кусок кода авторизации на сайте string login = textBox1.Text.Substring(textBox1.Text.IndexOf(":")); string pass =...

19
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
26.03.2014, 18:13
Ну вот вам аутентификация на киберфоруме (WebBrowser на Windows Forms).
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
try
            {
                while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
                {
                    Application.DoEvents();
                }
                HtmlDocument doc = this.webBrowser1.Document;
                doc.GetElementById("navbar_username").SetAttribute("Value", "odesskia@mail.ru");
                doc.GetElementById("navbar_password").SetAttribute("Value", "titanfirma");
                foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("input"))
                {
                    if (el.GetAttribute("value").Equals("Вход"))
                    {
                        el.InvokeMember("click");
                    }
                }
            }catch(Exception)
            {
 
            }
P.S. Только не думайте, что если вы залогинитесь с помощью этой формочки, что вы автоматом залогинитесь на все браузеры.
1
2 / 2 / 1
Регистрация: 09.10.2013
Сообщений: 104
26.03.2014, 18:29  [ТС]
Можете пояснить, собственно где здесь указывается сайт на котором происходит аутентификация ?
P.S. просто я нуб в этом деле
0
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
26.03.2014, 19:17
Я указал в свойствах webbrowser. Но можно и так:
C#
1
webBrowser1.Navigate(new Uri(address));
1
2 / 2 / 1
Регистрация: 09.10.2013
Сообщений: 104
27.03.2014, 11:46  [ТС]
а можно использовать уже существующий браузер ?
0
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
27.03.2014, 12:12
Цитата Сообщение от Cocozub Посмотреть сообщение
уже существующий браузер
что значит существующий? Который открыт в смысле? Ну тогда вам нужно юзать маршалинг, дабы подключаться к сторонним процессам.
0
2 / 2 / 1
Регистрация: 09.10.2013
Сообщений: 104
27.03.2014, 13:09  [ТС]
Можно ли просто отправлять куки ?

Добавлено через 53 минуты
никак не могу разобраться с маршалингом
0
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
27.03.2014, 14:34
Цитата Сообщение от Cocozub Посмотреть сообщение
просто отправлять куки
У кукуах есть свои уникальный номер, подделать который вам врядли удасться. Соответсвенно если вы скопируете кук, и потом каждый раз его будете подставлять, то вам ничего не поможет. Если вы найдете закономерность в куке с сесиями(т.к. частичное копирование файла может помочь), то тогда может что-то выйти. Но это уже далеко не c#.
1
2 / 2 / 1
Регистрация: 09.10.2013
Сообщений: 104
27.03.2014, 16:21  [ТС]
если поможете с маршалингом, хотя бы на простом примере, буду очень признателен )

Добавлено через 1 минуту
просто ни с того ни с сего проходится лезть в дебри, а сроки поджимают
0
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
27.03.2014, 16:57
Цитата Сообщение от Cocozub Посмотреть сообщение
просто ни с того ни с сего проходится лезть в дебри, а сроки поджимают
Во первых вы не сформулировали четко задачу. Я потратил своё время, сделал вам пример с веббраузером. Этот пример подходит под ваши требования. Теперь оказывается это было пустой тратой времени, вам нужно совершенно другое. Был бы четкий вопрос, был бы четкий ответ, а так...
0
2 / 2 / 1
Регистрация: 09.10.2013
Сообщений: 104
27.03.2014, 17:44  [ТС]
собственно, необходимо написать приложение которое будет логиниться на сайте по средством браузера, к примеру IE, в идеале браузер не должен при этом открываться
0
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
27.03.2014, 17:53
я бы на вашем месте использовал бы селениум. Он все же откроет браузер, там можно программно залогинится и закрыть браузер. Если веб сайт настроен, что не стирать куки после выхода, то на этот сайт можно зайти с аналогичного браузера ещё какое-то время.
2
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
27.03.2014, 18:09
собственно, необходимо написать приложение которое будет логиниться на сайте по средством браузера, к примеру IE, в идеале браузер не должен при этом открываться
Бредово звучит , если не нужно открывать браузер , тогда зачем он вообще нужен.
0
2 / 2 / 1
Регистрация: 09.10.2013
Сообщений: 104
27.03.2014, 20:31  [ТС]
можно и без использования браузера, я же написал я с вебом не сталкивался, просто отталкиваюсь от своего опыта - который я черпал в этой теме.
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
22.01.2018, 17:00
titans2011, У меня есть задача. Послать на сайтик POST запрос, но перед этим нужно пройти авторизацию на сайте. Можно ли сначала в WebBrowser-е открыть станицу авторизации, а потом как-нибуть передать какие-то параметры WebClient-у чтобы тот штамповал POST-ы по кд без моего вмешательства ибо мне впадлу кнопки клацать на сайте?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
22.01.2018, 17:11
qwertun, можно авторизаваться через WebClient и через него же дальше слать уже авторизованные запросы. Обычно для этого достаточно использовать один и тот же CookieContainer. В этом поможет простой класс CookieWebClient
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[System.ComponentModel.DesignerCategory("Code")]
class CookieWebClient : WebClient
{
    readonly CookieContainer _cookies = new CookieContainer();
    
    public CookieContainer Cookies { get { return _cookies; } }
    
    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        HttpWebRequest httpRequest = request as HttpWebRequest;
        if (httpRequest != null)
        {
            httpRequest.CookieContainer = _cookies;
        }
        return request;
    }
}
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
22.01.2018, 20:02
OwenGlendower,
Я заюзал WebBrowser чтобы зайти на сайтик и залогиниться на нём, а потом посылаю POST-запрос как показано ниже (нашёл в другой теме на форуме)
C#
1
2
3
4
5
tring postData = "value1=" + 1 + "&value2=" + 2 + "&value3=" + 3;
System.Text.Encoding encoding = System.Text.Encoding.UTF8;
byte[] bytes = encoding.GetBytes(postData);
string url = "http://www.domain.com/addSomething";
webBrowser1.Navigate(url, string.Empty, bytes, "Content-Type: application/x-www-form-urlencoded");
но столкнулся с проблемой, ответ, который приходит в JSON, программа пытается сохранить в файл, вместо того, чтобы выводить его в окно браузера. Если эта проблема решится, то WebClient уже не нужен будет.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
22.01.2018, 20:11
qwertun, попробуй совет с обновлением реестра - How can I convince IE to simply display application/json rather than offer to download it?

Копия reg файла с SO
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
Windows Registry Editor Version 5.00
;
; Tell IE to open JSON documents in the browser.  
; 25336920-03F9-11cf-8FD0-00AA00686F13 is the CLSID for the "Browse in place" .
;  
 
[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=hex:08,00,00,00
 
[HKEY_CLASSES_ROOT\MIME\Database\Content Type\text/json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=hex:08,00,00,00
0
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508
22.01.2018, 20:28
OwenGlendower, Спасибо, но я уже нагуглил более полную версию

Решил свою проблему активировав .reg файл следующего содержания

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Windows Registry Editor Version 5.00
;
; Tell IE to open JSON documents in the browser.  
; 25336920-03F9-11cf-8FD0-00AA00686F13 is the CLSID for the "Browse in place" .
;  
 
[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=hex:08,00,00,00
 
[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/x-json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=hex:08,00,00,00
 
[HKEY_CLASSES_ROOT\MIME\Database\Content Type\text/json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=hex:08,00,00,00
0
 Аватар для Кузнец кода
169 / 188 / 35
Регистрация: 21.01.2018
Сообщений: 230
22.01.2018, 22:48
Если подходить основательно, то используйте AngleSharp, так как за вас многое в нем сделано и меньше вероятностей сделать вам ошибок https://www.nuget.org/packages/AngleSharp/
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.01.2018, 22:48
Помогаю со студенческими работами здесь

Исправить ошибки в коде авторизации на сайте
Как убрать эти ошибки using System; using System.Linq; using System.Collections.Generic; using System.ComponentModel; using...

Kак получить куки при удачной авторизации на сайте
Здравствуйте! Помогите вытащить куки. Я авторизуюсь на сайте, если авторизация удачна я получаю куки так вот как мне вытащить эти куки...

Проверить факт авторизации на сайте
Есть браузер и например... VK Пользователь ввел данные (логин и пароль) и вошел в вк, вопрос: Как проверить вошел ли он в ВК? То есть...

Как программно авторизоваться на сайте через форму авторизации?
Добрый день. Как можно программно авторизоваться на сайте через форму авторизации и хранить сессию? На примере...

Программа для регистрации и авторизации с капчей
Моя проблема заключается в том что при регистрации первый пользователь вместе с паролем удаляется из локального файла а на его место...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru