05. november 2006 - 14:01Der 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.
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).
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 %>
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.
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
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.