webForumDet fria alternativet

Lösenordsprompt: Säkra upp & koppla till DB

ASP

1 svar · 239 visningar · startad av medialabs

Medlem sedan mars 20023 686 inlägg
Frågan#1

Hej!

Hittade detta finurliga ASP-script som visar en inloggningsruta av typen: "Windows", Ni kan se detta på http://conundrum.securityfocus.se/login.asp

Scriptet verkar fungera bra om det inte vore för att den inte är kopplad ihop med någon databas eller nått överhuvudtaget! Jag skulle vilja koppla ihop detta script med en MySQL databas, med tabelle: tblclient som har strID, strClient och strPassword och efter autentiseringen får klienten en session sedan skickas till MinResurs.asp.

(strClient är användarnamnet och strPassword är lösenordet)

Undrar också, om man inte anger något anv eller lösen nu så kan man klicka på OK-knappen tre gånger och sedan laddas en tom sida.. orkar inte scriptet med? varför gör den så? Inbygg skyddsåtgärd?

Hur som helst, behöver iaf hjälp med detta :)

<%
	Response.Buffer = True
	Response.Clear

	Dim Myname, MyPass

	GetUser Myname, MyPass
	'Response.Write "Användarnamn:" & MyName & "<br>Lösenord:" & MyPass

If Len(Myname) = 0 Then
Response.Status = "401 Unauthorized"
Response.AddHeader "WWW-Authenticate","BASIC Realm=Den här resursen är låst!"
Response.End
End If

	Sub GetUser(LOGON_USER, LOGON_PASSWORD)
	Dim UP, Pos, Auth
	Auth = Request.ServerVariables("HTTP_AUTHORIZATION")
	LOGON_USER = ""
	LOGON_PASSWORD = ""
	If LCase(Left(Auth, 5)) = "basic" Then
		UP = Base64Decode(Mid(Auth, 7))
		Pos = InStr(UP, ":")
		If Pos > 1 Then
		LOGON_USER = Left(UP, Pos - 1)
		LOGON_PASSWORD = Mid(UP, Pos + 1)
		End If
		End If
	End Sub
' Decodes a base-64 encoded string.
Function Base64Decode(base64String)
Const Base64CodeBase = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Dim dataLength, Out, groupBegin
dataLength = Len(base64String)
Out = ""
If dataLength Mod 4 <> 0 Then
Err.Raise 1, "Base64Decode", "Bad Base64 string."
Exit Function
End If
' Now decode each group:
For groupBegin = 1 To dataLength Step 4
Dim numDataBytes, CharCounter, thisChar, thisData, groupData
' Each data group encodes up To 3 actual
' bytes.
numDataBytes = 3
groupData = 0
For CharCounter = 0 To 3
' <B>Convert</B> each charac
' ter into 6 bits of data, And add it To
' an integer For temporary storage. If a
' character is a '=', there
' is one fewer data byte. (There can onl
' y be a maximum of 2 '=' In
' the whole string.)
thisChar = Mid(base64String, groupBegin + CharCounter, 1)
If thisChar = "=" Then
numDataBytes = numDataBytes - 1
thisData = 0
Else
thisData = InStr(Base64CodeBase, thisChar) - 1
End If
If thisData=-1 Then
Err.Raise 2, "Base64Decode", "Bad character In Base64 string."
Exit Function
End If
groupData = 64 * groupData + thisData
Next
' Convert 3-byte integer into up To 3 ch
' aracters
Dim OneChar
For CharCounter = 1 To numDataBytes
Select Case CharCounter
Case 1: OneChar = groupData \ 65536
Case 2: OneChar = (groupData And 65535) \ 256
Case 3: OneChar = (groupData And 255)
End Select
Out = Out & Chr(OneChar)
Next
Next
Base64Decode = Out
End Function
%>

Jag vill använda mig utav denna lösenordsprompt då mitt webbhotell, Neno.se inte vill manuellt sätta lösenordsskydd på en mapp....

Medlem sedan okt. 20041 556 inlägg
#2

Fick inte den där att fungera alls.
Spelar ingen roll vilket username/password man trycker in.
Får du den där att funka?

261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)