Inlogscherm in ASP

Pagina: 1
Acties:

  • Wally-S
  • Registratie: September 2001
  • Laatst online: 18-09 21:46

Wally-S

-Snowboarding is art-

Topicstarter
Hallo,
Ik heb met behulp van de volgende code een inlogscherm:

code:
<code>
<% auth = Request("HTTP_AUTHORIZATION")

IF auth = "" THEN
Response.Status = "401 Not Authorized"
Response.addHeader "WWW-Authenticate", "Basic realm=""localhost"""
Response.End
END IF

%>
</code>

Nu wil ik dus de ingevulde gegevens vergelijken met gegevens uit een database.
Uit PHP kan ik me herinneren dat hier 2 simpele variabelen voor zijn.
Ik kan deze echter niet vinden voor ASP.
Kan iemand hier een oplossing voor geven?

Snow is only frozen water


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 17-09 14:44

Jaspertje

Max & Milo.. lief

code:
1
2
3
4
5
6
7
8
9
dim stLogin
if request("button")<>"" then
    set stLogin= con.execute("SELECT  FROM login WHERE Username='" & & "' AND Password='" & & "'")
    if not stLogin.eof then
        response.Redirect "" 
    Else 
        response.write("De gegevens kloppen niet.")
    End if
End if

dze code zou moeten werken, je moet dan alleen wel een button hebben en twee tekst veldjes

  • Wally-S
  • Registratie: September 2001
  • Laatst online: 18-09 21:46

Wally-S

-Snowboarding is art-

Topicstarter
Dit bedoel ik dus eigenlijk niet.
Een formpje maken met twee tekstvakken en een button lukt me wel.
Ik vind alleen dat standaard loginscherm zo mooi en wil die dus gebruiken.
Nog iemand een idee?

Snow is only frozen water


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 12:20

Crazy D

I think we should take a look.

Check eens de Request.Servervariables in een loopje, er zat een AUTHENTICATED_USER oid. tussen als ik het me goed herinner.
Alleen volgens mij kun je dat niet gebruiken om zelf de logins te regelen, maar meot dat via windows authentication gebeuren.

Exact expert nodig?


Verwijderd

Volgens mij zitten die ook in de HTTP_AUTHENTICATION via base-64 encoded string. Je moet deze decoden.
Hieronder wat sleur en pleur.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Dim MyName, MyPass
GetUser MyName, MyPass

'Get username & Password
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 character 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 only 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 characters
    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