webForumDet fria alternativet

http_auth

0 svar · 186 visningar · startad av OveRRidE

OveRRidEMedlem sedan feb. 20018 509 inlägg
#1
<%
'Av Gunnar Liljas, 2001 - gunnar@leon.se
'Ovanstående rad ska vara kvar, om du använder skriptet
'Funktionen CheckUser byts ut mot godtycklig användarkoll, och självklart kan man kolla något annat än Session("UserID")
DoAuth

'Här fortsätter sidan, efter att man blivit godkänd

Sub DoAuth
if isempty(Session("UserID")) then
strAuth=request.servervariables("HTTP_AUTHORIZATION")
if len(strAuth)>7 then
if lcase(left(strAuth,5))="basic" then
strAuth=mid(strAuth,7)
strAuth=Base64Decode(strAuth)
arrLogin=split(strAuth,":")
strUser=arrLogin(0)
strPass=arrLogin(1)
if CheckUser(strUser,strPass) then
exit sub
end if
end if
end if

NoAuth
end if
End Sub

Function CheckUser(username,password)
if username="admin" and password="admin" then 
Session("UserID")=1
CheckUser=true
end if
End Function

Sub NoAuth
Response.Status = "401 Unauthorized"
Response.AddHeader "WWW-Authenticate","BASIC Realm=Min skyddade zon"
Response.Write "<B>Fy skäms!</B>"
Response.End
End Sub 

Function Base64Decode(inString)
dim strOutput,intPos,intCharPos,intBytes,intTmpPos,intTmp,strChar
CONST Base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
if (Len(inString) mod 4)<>0 then exit function
for intPos=1 to Len(inString) step 4
intBytes=3
intTmp=0
for intCharPos=0 to 3
if mid(inString, intPos + intCharPos, 1) = "=" then
intBytes=intBytes-1
intTmpPos=0
else
intTmpPos=InStr(Base64Chars, Mid(inString, intPos + intCharPos, 1)) - 1
if intTmpPos=-1 then exit function
end if
intTmp=64*intTmp+intTmpPos
next
for intCharPos=1 to intBytes
select case intCharPos
case 1: 
strOutput=strOutput & chr(intTmp \ 65536)
case 2: 
strOutput=strOutput & chr((intTmp and 65535) \ 256)
case 3: 
strOutput=strOutput & chr(intTmp and 255)
end select
next
next
Base64Decode = strOutput
End Function

%>

Detta har tagits upp innan, jag får det inte att fungera. Rutan kommer som sagt fram, men oavsett vad jag skriver kommer jag inte längre än till 401-sidan. Jag är 100% säker på att mitt lösenord är rätt.

------------------
Do Until Flickor.EOF
Response.Write "Du är mitt allt."
Response.Write "Ska vi ha sex nu?"
Response.Write "Det är slut."
Flickor.MoveNext
Loop

Genererad på 360 ms · cache AV · v20260730165559-full.f96bc7eb