Avatar billede hjep Nybegynder
04. oktober 2002 - 12:07 Der er 1 kommentar og
1 løsning

Sikre at det er den rigtige bruger

Jeg har en side hvor jeg beder om brugernavn og password. Brugeren bliver herefter redirectet til den korrekte side. Man kan heller ikke linke sig hen på siden uden at man har været igennem brugernavn og password, hvilket også er smart nok.

Den side man bliver sendt videre til hedder f.eks.
for person x
siden.asp?id=1

for person y
siden.asp?id=2 osv osv.

Nu kan person x jo så hurtig regne ud at hvis han vil en på person y side, skriver han bare id=2. Han skal selvfølgelig lige logge sig ind først med sit eget.

Dette skal han dog ikke kunne. Det skal være sådan at peson x kun kan logge sig ind på sin eget. Og det kan jeg vel gøre på en eller anden snedig måde. Er der nogen der kender nogen steder på nettet, hvor jeg kan læse lidt mere om hvordan og hvorledes. Evt. hente noget kode?

Min nuv. kode er

<%
' 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("UserID4")
            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 "UserID4" og brugeren bliver sendt videre
            Session("UserID4") = 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
%>
Avatar billede senj Nybegynder
04. oktober 2002 - 12:48 #1
Du kunne evt. ligge en cookie på clienten der viser hvilken bruger der kan gå på den gældende PC i den session der kører. Når du henter id´et nede i basen, så smider du det i en cookie og hver gang en side læses, som er afhængig af bruger id, så tager du det fra cookien. På den måde sikrer du at brugen aldrig ser sit eget ID og så behøves det heller ikke at kører med rundt i url´en hver gang du browser rundt på siden.

Altså bare en ide.

-- Sæt cookien´s levetid til en session, gøres ved ikke at specificere noget, så sikrer du at cookien ikke misbruges ved eks. flerbruger computere.

/senj
Avatar billede soes Nybegynder
04. oktober 2002 - 18:24 #2
du opretter en session variabel under login, session("UserID4"), er det ikke den samme vaerdi som side.asp?id=1

Det spm jeg ville goere er at jeg ville droppe den del af querystringen id=... og paa min side.asp istedet bruge min session("UserID4")
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester