авторизация http

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
dasker
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 01.10.2003 (Ср) 4:37

авторизация http

Сообщение dasker » 13.03.2007 (Вт) 1:26

Здравствуйте, подскажите пожалуйста,
как можно получить содержание html странички после авторизации. т.е программно ввести basic авторизацию
Поиск перерыл весь, вроде что то есть и одновременно ничего нет.

суть в этом
===============================
Код: Выделить всё
POST /cgi-bin/webcm HTTP/1.1
Accept: image/gif, image/x-xbitmap, */*"
Referer: http://192.168.1.1/cgi-bin/webcm
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Own
Host: 192.168.1.1
Content-Length: xxx
Connection: Keep-Alive
Cache-Control: no-cache

getpage=..%2Fhtml%2Fframe.htm&errorpage=..%2Fhtml%2Findex.html&login%3Acommand%2Fusername=admin&login%3Acommand%2Fpassword=admin&var%3Aerrormsg=Error

эти заголовки нужно передать роутеру дабы он позволил авторизироваться.

Код: Выделить всё
Winsock1.SendData "POST /cgi-bin/webcm HTTP/1.1" & vbCrLf
Winsock1.SendData "Accept: image/gif, image/x-xbitmap, */*" & vbCrLf
Winsock1.SendData "Referer: http://192.168.166.1/cgi-bin/webcm" & vbCrLf
Winsock1.SendData "Accept-Language: ru" & vbCrLf
Winsock1.SendData "Content-Type: application/x-www-form-urlencoded" & vbCrLf
Winsock1.SendData "Accept-Encoding: gzip, deflate" & vbCrLf
Winsock1.SendData "User-Agent: Own" & vbCrLf
Winsock1.SendData "Host: 192.168.166.1" & vbCrLf
Winsock1.SendData "Connection: Keep-Alive" & vbCrLf
Winsock1.SendData "Cache-Control: no-cache" & vbCrLf


где нужно вводить имя и пароль, и в каком виде? что то читал про base64.
спасибо.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.03.2007 (Вт) 9:19

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

dasker
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 01.10.2003 (Ср) 4:37

Сообщение dasker » 13.03.2007 (Вт) 21:57

Код: Выделить всё
Winsock1.SendData "POST /cgi-bin/webcm HTTP/1.1" & vbCrLf & _
"Accept: image/gif, image/x-xbitmap, */*" & vbCrLf & _
"Referer: http://192.168.166.1/cgi-bin/webcm" & vbCrLf & _
"Accept -Language: ru" & vbCrLf & _
"Content-Type: application/x-www-form-urlencoded" & vbCrLf & _
"User -Agent: Own" & vbCrLf & _
"Host: 192.168.166.1" & vbCrLf & _
"Content -Length: xxx" & vbCrLf & _
"Connection: Keep -Alive" & vbCrLf & _
"cache -Control: no -cache" & vbCrLf & _
    "Authorization: basic " & Base64_Encode("admin:admin") & vbCrLf & _
    "host: 192.168.166.1" & vbCrLf & vbCrLf
   


вот это не хочет работать пишет
Text1HTTP/1.1 401 Unauthorized
Server:
Content-Type: text/html
Date: Sun, 02 Jan 2005 22:44:52 GMT
Last-Modified: Sun, 02 Jan 2005 22:44:52 GMT
Accept-Ranges: bytes
Connection: close
WWW-Authenticate: Basic realm="Please enter your user name and password on DSL-500T"

<HTML>
<HEAD><TITLE>401 Unauthorized</TITLE></HEAD>
<BODY BGCOLOR="#cc9999" TEXT="#000000" LINK="#2020ff" VLINK="#4040cc">
<H2>401 Unauthorized</H2>
Authorization required for the URL '/cgi-bin/webcm'.
<HR>
<ADDRESS><A HREF=""></A></ADDRESS>
</BODY>
</HTML>

в чем может быть проблема?]
спасибо.

Cytron
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 266
Зарегистрирован: 15.02.2007 (Чт) 21:09

Сообщение Cytron » 13.03.2007 (Вт) 22:44

dasker писал(а):
Код: Выделить всё
Winsock1.SendData "POST /cgi-bin/webcm HTTP/1.1" & vbCrLf & _
"Accept: image/gif, image/x-xbitmap, */*" & vbCrLf & _
"Referer: http://192.168.166.1/cgi-bin/webcm" & vbCrLf & _
"Accept -Language: ru" & vbCrLf & _
"Content-Type: application/x-www-form-urlencoded" & vbCrLf & _
"User -Agent: Own" & vbCrLf & _
"Host: 192.168.166.1" & vbCrLf & _
"Content -Length: xxx" & vbCrLf & _
"Connection: Keep -Alive" & vbCrLf & _
"cache -Control: no -cache" & vbCrLf & _
    "Authorization: basic " & Base64_Encode("admin:admin") & vbCrLf & _
    "host: 192.168.166.1" & vbCrLf & vbCrLf
   



почему у тебя Content -Type а не Content-Type, и т д ? :roll:

dasker
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 01.10.2003 (Ср) 4:37

Сообщение dasker » 13.03.2007 (Вт) 23:20

все поправил но эффект тот же

Winsock1.SendData "POST /cgi-bin/webcm HTTP/1.1" & vbCrLf & _
"Accept: image/gif, image/x-xbitmap, */*" & vbCrLf & _
"Referer: http://192.168.166.1/cgi-bin/webcm" & vbCrLf & _
"Accept-Language: ru" & vbCrLf & _
"Content-Type: application/x-www-form-urlencoded" & vbCrLf & _
"User-Agent: Own" & vbCrLf & _
"Host: 192.168.166.1" & vbCrLf & _
"Content-Length: xxx" & vbCrLf & _
"Connection: Keep-Alive" & vbCrLf & _
"cache -Control: no-cache" & vbCrLf & _
"Authorization: basic " & Base64_Encode("admin:admin") & vbCrLf & _
"host: 192.168.166.1" & vbCrLf & vbCrLf

RUSYA
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 22.07.2005 (Пт) 20:17
Откуда: Харьков

Сообщение RUSYA » 18.03.2007 (Вс) 23:04

Код: Выделить всё
'========================================================================
' * HTTP-аутентификация

' WB - Объект WebBrowser
' sURL - Страница на которой производится аунтификация
' sLogin/sPassword - логин/пароль для аунтификации

Public Sub AuthBasic(ByVal WB As WebBrowser, ByVal sURL As String, ByVal sLogin As String, ByVal sPassword As String)
    Dim base64 As String
    Dim PostData As String
   
    base64 = mBase64.EncodeStr64(sLogin & ":" & sPassword)
   
    PostData = "Authorization: Basic " & base64 & vbCrLf
    PostData = PostData & vbCrLf
   
    WB.Navigate sURL, , , , PostData
End Sub
'========================================================================


Вот, выдрал из своего проекта, это правда через контрол WebBrowser но принцип ясен...
mBase64.EncodeStr64 - просто возвращает текст в закодированном виде алгоритмом Base64. Тут листинг выкладывать небуду, в инете полно примеров.
А как оно на самом деле - Х.З. !


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 39

    TopList