03. maj 2002 - 13:01Der er
19 kommentarer og 1 løsning
Speciel login funktion
Jeg har brug for en login funktion, der skal gå ind i en Access database, i en "login" tabel, finde password som personen har tastet OG i en kolonne er der Targetwebsite (der har jeg skrevet stien til mappen hvor personen burd sendes til hvis password stemmer, alle personer sendes til deres Targetwebsite).
Okay. Du laver en en tabel der fx. hedder "login" med to kolloner. "user" og "pass". Så skriver du et brugernavn og et password i kollonerne.
Lav en side der hedder login.asp i UD. Indsæt en form, to textfield (user og pass) samt en submit-button.
Lav et recordset for logintabellen.
Med databindings vinduet åbent siger du: serverbehaviors-->user authentication-->log in user
Der vælger du din tabel, dit user og passfield, hvilken side der skal redirectes til ved login, og det samme ved forkert login.
Det burde være det.
------------------------------------
På de sider hvor du vil ha' login'en skal gælde, siger du blot: serverbehaviors-->user authentication-->restrict acces to page og vælger username and password. Hvis de så prøver at gå en til en side udenom login bliver de redirectet til login.asp
Hvis du vil lave en logud funktion, vælger du en tekst/billede og siger: serverbehaviors-->user authentication-->log out user.
Det skal så lige siges at den behavior har et sikkerhedshul.
Det løses sådan: (VB)
Find denne linje: MM_rsUser.Source = MM_rsUser.Source & " FROM login_table WHERE username_field='" & MM_valUsername &"' AND password_field='" & CStr(Request.Form("password_textbox")) & "'"
Udskift den med denne: MM_rsUser.Source = MM_rsUser.Source & " FROM login_table WHERE username_field='" & Replace(MM_valUsername,"'","''") &"' AND password_field='" & Replace(Request.Form("password_textbox"),"'","''") & "'"
jeg har brug for noget der kan tjekke om password findes i databasen hvis den findes, så skal den tjekke stien i "Targetwebsite" kolonne og så sende brugeren til siden!
når jeg laver :serverbehaviors-->user authentication-->log in user så kan jeg kun angive en side.
alle dem som har en password i databasen, i øjeblikket er der 5, men det bliver meget flere, skal sendes til deres egne sider, som er indtastet i targetwebsite.
<% ' Hvis der er blevet trykket på knappen "Login" If Request.Form("Action") = "Login" Then ' Her forberedes de indtastede værdier til validering strUID = Trim(Replace(Request.Form("Brugernavn"),"'","")) strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))
' Hvis der er skrevet noget i både brugernavn og adgangskode If Len(strUID) > 0 And Len(strPWD) > 0 Then
' DSNLess forbindelse til databasen Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("protect.mdb")
' Opbygning af SQL streng strSQL = "SELECT * FROM Users"&_ " WHERE (Username = '" & strUID & "')"&_ " AND (Password = '" & strPWD & "')"
Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis brugeren fandtes i databasen intUID = rs("UserID") intTRAN = rs("Transfer")
Else ' Hvis brugeren ikke fandtes i databasen strERR = "Du blev ikke godkendt af systemet" End If
' Rydder op i vores connection objekt myConn.Close Set myConn = Nothing
If Len(intUID) Then ' Hvis variablen intUID indeholder en værdi sættes denne i sessionen "UserID" og brugeren bliver sendt videre Session("UserID") = intUID Response.Redirect intTRAN End If Else ' Hvis der ikke var angivet brugernavn og adgangskode strErr = "Du skal skrive både brugernavn og adgangskode" End If
If Len(strErr) > 0 Then ' Her laves fejlmeddelsen om til rød skrift strErr = "<p><font color=red>" & strErr & "</font></p>" End If End If %> <html><head> <title>Login script</title> </head>
sender den rigtige nu hvor jeg har lavet ændringer...
<% ' Hvis der er blevet trykket på knappen "Login" If Request.Form("Action") = "Login" Then ' Her forberedes de indtastede værdier til validering strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))
' Hvis der er skrevet noget i både brugernavn og adgangskode If Len(strPWD) > 0 Then
' DSNLess forbindelse til databasen Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("serviceaftale/serviceaftale.mdb")
' Opbygning af SQL streng strSQL = "SELECT * FROM login"&_ " WHERE (Pasord = '" & strPWD & "')"
Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis brugeren fandtes i databasen intUID = rs("PersonID") intTRAN = rs("Targetwebsite")
Else ' Hvis brugeren ikke fandtes i databasen strERR = "Du blev ikke godkendt af systemet" End If
' Rydder op i vores connection objekt myConn.Close Set myConn = Nothing
If Len(intUID) Then ' Hvis variablen intUID indeholder en værdi sættes denne i sessionen "UserID" og brugeren bliver sendt videre Session("PersonID") = intUID Response.Redirect intTRAN End If Else ' Hvis der ikke var angivet adgangskode strErr = "Du skal skrive adgangskode" End If
If Len(strErr) > 0 Then ' Her laves fejlmeddelsen om til rød skrift strErr = "<p><font color=red>" & strErr & "</font></p>" End If End If %> <html><head> <title>Login script</title> </head>
jeg har hentet denne script, men den havde sin egen database , jeg har prøvet at ændre de nødvendige koder i den så den kunne bruge min database, men hver gang jeg prøver at logge ind, så er det som om den opdatere siden og ikke andet.
den har ikke forbindelse med databasen, jeg har skrevet de nødvendige info om min database længere op, hvis du lige tjekker den engang.
login siden og databasen ligger i samme mappe i wwwroot mappen.
den virker bare ikke.....men jeg fandt en anden kode, som jeg har fået til at virke...
Tak for hjælpen.
Mustafa
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.