Avatar billede steen_hansen Forsker
05. november 2006 - 14:01 Der er 5 kommentarer og
1 løsning

Ved login kan valg gemmes i cookie

Jeg har givet brugeren mulighed for at gemme sit valg i en cookie, når der logges ind. Man får mulighed for automatisk login, at få husket sit user/pass eller ikke at få gemt hverken user eller pass, så man manuelt skal indtaste user/pass.

Det er så lidt problematisk, når brugeren enten har valgt automatisk login, eller gerne vil have husket sine data (i cookien). For brugeren kan også selv rette sit pwd, når vedkommende er logget ind.

Hvis man har autologin/vil have husket sine data, gemmes data i cookien, når man logger ind.

NÅR man er logget ind, og ændrer sit password, som bliver gemt i databasen, bliver det jo ikke også gemt i cookien. Scriptet ser således ud:

Select Case Request("autologin")
    Case "autologin"
        Response.Cookies("LoginInfo").Expires = Now + 365
        Response.Cookies("LoginInfo")("autologin") = "true"
        Response.Cookies("LoginInfo")("username") = Session("username")
        Response.Cookies("LoginInfo")("password") = RS("pass")
    Case "remember"
        Response.Cookies("LoginInfo").Expires = Now + 365
        Response.Cookies("LoginInfo")("autologin") = ""
        Response.Cookies("LoginInfo")("username") = Session("username")
        Response.Cookies("LoginInfo")("password") = RS("pass")
    Case Else
        Response.Cookies("LoginInfo").Expires = Now
        Response.Cookies("LoginInfo")("autologin") = ""
        Response.Cookies("LoginInfo")("username") = ""
        Response.Cookies("LoginInfo")("password") = ""
End Select

Hvis jeg har valgt "autologin" (bliver ikke gemt i DB, kun i cookie), og efterfølgende ændrer mit password, vil scriptet tjekke hvad der står i cookien contra det, der står i databasen, og så bokser siden bare frem og tilbage.

Kan man opdatere den cookie, der bliver gemt i Temp Inet Files, hvis man ændrer password, med det man ændrer i formularen, når man ændrer password til sin profil?

Jeg ved jeg kom langt omkring i formuleringen. Spørg, hvis jeg har formuleret mig for kryptisk.
Avatar billede steen_hansen Forsker
05. november 2006 - 14:34 #1
Kort sagt, når man ændrer sit password i sin profil, skal det også rettes i cookien, når man var valgt autologin eller at få husket sin logininformationer (user/password).
Avatar billede tjaz Nybegynder
05. november 2006 - 18:49 #2
du kan vel bare opdatere din cookie samtid med at du opdatere databasen med det nye password hvis brugeren har valgt at benytte autologin?

<%
strSQL = "UPDATE ... "
Conn.Execute(strSQL)

If Request.Cookie("LoginInfo")("autologin") = "true" then
        Response.Cookies("LoginInfo").Expires = Now + 365
        Response.Cookies("LoginInfo")("autologin") = "true"
        Response.Cookies("LoginInfo")("username") = Session("username")
        Response.Cookies("LoginInfo")("password") = Request.Form("adgangskode")
end if
%>
Avatar billede steen_hansen Forsker
05. november 2006 - 20:02 #3
Ok, men der er jo både autologin og husk-mine-logindata
Avatar billede steen_hansen Forsker
05. november 2006 - 20:11 #4
Der skal vel tjekkes cookien, om autologin = "true"

'autologin er valgt
Response.Cookies("LoginInfo")("autologin") = "true"

'gem-minelogindata er valgt
Response.Cookies("LoginInfo")("autologin") = ""


Hele scriptet:

Select Case Request("autologin")
    Case "autologin"
        Response.Cookies("LoginInfo").Expires = Now + 365
        Response.Cookies("LoginInfo")("autologin") = "true"
        Response.Cookies("LoginInfo")("username") = Session("username")
        Response.Cookies("LoginInfo")("password") = RS("pass")
    Case "remember"
        Response.Cookies("LoginInfo").Expires = Now + 365
        Response.Cookies("LoginInfo")("autologin") = ""
        Response.Cookies("LoginInfo")("username") = Session("username")
        Response.Cookies("LoginInfo")("password") = RS("pass")
    Case Else
        Response.Cookies("LoginInfo").Expires = Now
        Response.Cookies("LoginInfo")("autologin") = ""
        Response.Cookies("LoginInfo")("username") = ""
        Response.Cookies("LoginInfo")("password") = ""
End Select
Avatar billede steen_hansen Forsker
05. november 2006 - 20:27 #5
Eller rettere, der skal vel tjekkes for 2 forhold:

1. Er autologin valgt? Hvis ja, overskriv cookie med nye oplysninger
2. Er autologin valgt? Hvis nej, står der noget i username/pass? Hvis der gør, overskriv cookie med nyt user/pwd.

Jeg får forøvrigt en fejl, når jeg forsøger Request.Cookie, havde selv forsøgt det tidligere.
Avatar billede steen_hansen Forsker
05. november 2006 - 22:14 #6
Jeg fandt selv ud af det, men ellers tak for hjælpen :o)


If Request.Cookies("LoginInfo")("autologin") = "true" Then
    Response.Cookies("LoginInfo").Expires = Now + 365
    Response.Cookies("LoginInfo")("autologin") = "true"
    Response.Cookies("LoginInfo")("username") = Session("username")
    Response.Cookies("LoginInfo")("password") = Request.Form("pass2")
ElseIf Request.Cookies("LoginInfo")("autologin") = "" And Request.Cookies("LoginInfo")("username") <> "" Then
    Response.Cookies("LoginInfo").Expires = Now + 365
    Response.Cookies("LoginInfo")("autologin") = ""
    Response.Cookies("LoginInfo")("username") = Session("username")
    Response.Cookies("LoginInfo")("password") = Request.Form("pass2")
ElseIf Request.Cookies("LoginInfo")("autologin") = "" And Request.Cookies("LoginInfo")("username") = "" Then
    Response.Cookies("LoginInfo").Expires = Now
    Response.Cookies("LoginInfo")("autologin") = ""
    Response.Cookies("LoginInfo")("username") = ""
    Response.Cookies("LoginInfo")("password") = ""
End If
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