Jump to content
Sign in to follow this  

How to set credentials for a basic authorization in winhttp.au3?

Recommended Posts


I'm trying to improve a script made with IE.au3 to reconnect my router now using winhttp.au3. I saw the example of _WinHttpSetCredentials:

#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6

#include "WinHttp.au3"

Opt("MustDeclareVars", 1)

; !!! The result of this script will be this sent to the server:
 POST /admin.php HTTP/1.1
 Connection: Keep-Alive
 Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8
 User-Agent: AutoIt/3.3
 Content-Length: 0
 Authorization: Basic YWRtaW46YWRtaW4=

; My server
Global $sLocalIP = ""
; Initialize and get session handle
Global $hOpen = _WinHttpOpen()
; Get connection handle
Global $hConnect = _WinHttpConnect($hOpen, $sLocalIP)
; Specify the reguest
Global $hRequest = _WinHttpOpenRequest($hConnect, _
        "POST", _ ; verb
        "admin.php", _ ; object
        Default, _ ; version
        Default, _ ; referrer
        "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") ; accept types

; Set credentials
_WinHttpSetCredentials($hRequest, $WINHTTP_AUTH_TARGET_SERVER, $WINHTTP_AUTH_SCHEME_BASIC, "admin", "admin")

; Send request
; Wait for the response

; .... The rest of the code here...

; Close handles

I tried the same code but using livehttpheaders to trace the login process I found that the type of authorization is not Authorization: Basic YWRtaW46YWRtaW4= as in the example. How can I input mine? I saw that it uses $WINHTTP_AUTH_TARGET_SERVER, $WINHTTP_AUTH_SCHEME_BASIC and when I look at these constants in winhttpconstants.au3 I saw they seem to be memory adress or hexadecimal :) should I use binary to string or something like that or what do I have to input in $iAuthTargets and $iAuthScheme? I would appreciate some guidance in this ;)

The object of the request I think it is sys_status.htm and the method is GET (all info obtained using live http headers plugin for firefox)

Needless to say I tried the code with my user and pass and $WINHTTP_AUTH_TARGET_SERVER and $WINHTTP_AUTH_SCHEME_BASIC as parameters in _WinHttpSetCredentials and it gave me this response:

<HTML><HEAD><TITLE>401 Unauthorized</TITLE></HEAD>
<BODY BGCOLOR="#cc9999"><H4>401 Unauthorized</H4>
Authorization required.

I am a bit reliant of posting my code because I'm not sure -and sorry if this is a newbie believing- but could someone login my router from internet knowing the IP (192.168 ... ) and my user and password? I have remote management disabled but I would like to be sure. IF not, I will reply from now on with what I have done but first I need to know what to input in the parameters of _WinHttpSetCredentials.

Thanks for your help!

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.