0 / 0 / 0
Регистрация: 07.11.2018
Сообщений: 14
|
||||||
1 | ||||||
Авторизация через webBrowser107.11.2018, 13:44. Показов 1542. Ответов 16
Метки webbrowser (Все метки)
Пытаюсь авторизоваться на сайте и перейти на другую страницу.
Можете подсказать как можно изменить ссылку чтобы не потерять авторизацию?
0
|
07.11.2018, 13:44 | |
Ответы с готовыми решениями:
16
Авторизация world of tanks, ввод данных в webbrowser1, https://ru.wargaming.net/id/signin/ Горим! Нужна авторизация через PHP и второй вариант через Cookie Авторизация через программу и продолжение просмотра через браузер авторизация через вк |
2 / 2 / 2
Регистрация: 18.07.2013
Сообщений: 124
|
|
07.11.2018, 17:45 | 2 |
С веб браузером не работал, но скорее всего он не поддерживает куки и их нужно выставить вручную, узнать какие куки просит выставить сервер можно через fiddler
0
|
0 / 0 / 0
Регистрация: 07.11.2018
Сообщений: 14
|
|||||||||||
08.11.2018, 14:18 [ТС] | 3 | ||||||||||
Сделал так
Вначале
Если кто-нибудь знает, а как получить доступ к сайту через компонент WebClient Есть сайт закрытый паролем, задача авторизоваться на нем и загрузить определенную страницу например http://server/application/obj в формате html и распарсить ее. Через описанный выше пример webBrowser1 работает, но хотелось бы попроще. Можете подсказать как это сделать например через WebClient или еще как-нибудь?
0
|
Администратор
|
|
08.11.2018, 14:59 | 4 |
Делаем запрос(ы) для авторизации и затем запрашиваем нужную страницу. Главное использовать один и тот же WebClient и CookieContainer. Класс CookieWebClient облегчит задачу.
Поддерживает.
0
|
0 / 0 / 0
Регистрация: 07.11.2018
Сообщений: 14
|
|||||||||||
08.11.2018, 17:21 [ТС] | 5 | ||||||||||
Пробовал так сделать. Не проходит по второй ссылке.
0
|
1144 / 853 / 262
Регистрация: 30.04.2009
Сообщений: 3,581
|
|||||||||||
08.11.2018, 22:04 | 7 | ||||||||||
Авторизация обычно делается через отправку формы, т.е. content type в post запросе должен быть установлен в соответствующее значение -
"application/x-www-form-urlencoded" Добавь строку перед первым запросом:
0
|
0 / 0 / 0
Регистрация: 07.11.2018
Сообщений: 14
|
||||||||||||||||
13.11.2018, 17:16 [ТС] | 8 | |||||||||||||||
Пробовал сделать так не хочет
0
|
Администратор
|
||||||
13.11.2018, 17:30 | 9 | |||||
wvl16865, без сравнения запросов сделанного через браузер и запросов сделанных программой точного ответа дать не получится. Пока видно только что в запросе авторизации не хватает параметра urlParams.
0
|
0 / 0 / 0
Регистрация: 07.11.2018
Сообщений: 14
|
|
13.11.2018, 17:45 [ТС] | 10 |
Примерно так из браузера
Request URL: http://server/app/login/doLogin Request Method: POST Status Code: 302 Found Remote Address: 10.0.0.1:80 Referrer Policy: no-referrer-when-downgrade Cache-Control: no-cache, no-store, max-age=0, must-revalidate Connection: Keep-Alive Content-Length: 0 Date: Tue, 13 Nov 2018 14:37:39 GMT Expires: 0 Keep-Alive: timeout=5, max=96 Location: /app/ Pragma: no-cache Server: Apache/2.4.18 (Ubuntu) Set-Cookie: JSESSIONID=1111111111111111111111111111; Path=/app/; HttpOnly X-Content-Type-Options: nosniff X-UA-Compatible: IE=Edge X-XSS-Protection: 1; mode=block Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Cache-Control: max-age=0 Connection: keep-alive Content-Length: 35 Content-Type: application/x-www-form-urlencoded Cookie: JSESSIONID=1111111111111111111111111111; sessionExpiresAt=111111111111; timezoneOffset=-180 Host: server Origin: http://server Referer: http://server/app/login/ Upgrade-Insecure-Requests: 1 username: user1 password: pass1 params:
0
|
Администратор
|
|
13.11.2018, 18:10 | 11 |
wvl16865, в таком виде это трудно воспринимать. Если это было взято из Fiddler как я посоветовал, то лучше использовать команду Export Sessions. Тем не менее похоже запрос нужно отправлять на адрес http://server/app/login/doLogin
0
|
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
|
|
13.11.2018, 23:39 | 12 |
wvl16865, скорее всего клик по кнопке у вас не проходит . Вам не нужно делать webBrowser1.Navigate("http://server/application/obj/"); вручную после нажатия на кнопку, по идее сайт должен сам вас перебросить на нужную страницу после успешной авторизации. Да и используйте лучше xNet или стандартные библиотеки для работы с http
Добавлено через 1 минуту wvl16865, если все же хотите использовать браузер, то не рекомендую стандартный. По моему есть движок от mozila в свободном доступе и вполне рабочий. Раньше еще awesomium был, но я недавно захотел использовать его и к моему сожалению он уже не функционировал. Возможно сейчас выкатали что-то на замену
0
|
0 / 0 / 0
Регистрация: 07.11.2018
Сообщений: 14
|
|
14.11.2018, 09:20 [ТС] | 13 |
через webBrowser1 как раз все работает, кнопка нажимается. Страницу для парсинга получаю. Хотел попробовать через webClient не получается.
0
|
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
|
|
14.11.2018, 11:49 | 14 |
wvl16865, используйте программы для проверки трафика
например httpAnalizer или Fiddler , в плане просмотра http запросов очень удобные софтины
0
|
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
|
|
14.11.2018, 12:23 | 15 |
0
|
0 / 0 / 0
Регистрация: 07.11.2018
Сообщений: 14
|
|||||||||||
14.11.2018, 15:54 [ТС] | 16 | ||||||||||
Всем спасибо за помощь. Решил задачу.
0
|
Администратор
|
|
14.11.2018, 17:09 | 17 |
Молодец. Советую убрать метод Login из класса CookieAwareWebClient. Ему там не место.
0
|
14.11.2018, 17:09 | |
14.11.2018, 17:09 | |
Помогаю со студенческими работами здесь
17
Авторизация через бд Авторизация через БД Авторизация через БД Авторизация через вк Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |