Jag har en automatisk inloggning så man blir inloggad automatiskt då man kommer till sidan. Då man loggar ut körs koden:
Response.Cookies("User")("ID") = ""
Response.Cookies("User")("Password") = ""
Response.Cookies("User").Expires = "December 22, 1999"
Det har alltid fungerat, men en användare klagar på att då han loggar ut blir han inte utloggad. Värdena stannar alltså kvar. Och loggfilen bekräftar att han har rätt.
Varför blir det så? Vad kan jag göra åt det?
VideMedlem sedan dec. 19998 577 inlägg Testa detta:
Response.Cookies("User").Expires = date() -1
Hej!
Får inte tag på han som hade problem med det nu, men varför blir det så? Det är väl datumet på servern som räknas!?
@ndersMedlem sedan juni 200032 969 inlägg Nej, klienten vet inte vad det är för datum på servern, och inte tvärt om heller. Jag skulle kunna tänka mig att det är så att din användare har helt galet datum inställt på sin maskin, annars kan jag inte komma på vad det är som bråkar.
Be alltså användaren kontrollera systemdatumet på maskinen.
mvh,
Nepp. Hans klocka var alldeles korrekt inställd!
Vad kan det då vara för något? Alla andra kan logga ut - utom han...
OveRRidEMedlem sedan feb. 200112 078 inlägg RED. Eller kanske inte.. :l
cyprysMedlem sedan dec. 20003 563 inlägg Kan inte ha med att användaren ändrat säkerhetsnivån på webbläsaren?
nikoMedlem sedan juni 20022 599 inlägg Eftersom det är ett klientproblem som berör en användare så är det egentligen klientfakta som är intressant:
Vilken webläsare använder han? Version?
Är han fortfarande inloggad om han stänger och startar om webläsarinstansen?
Surfar han i mer än en webläsarinstans när det händer?
Kör han genom nån konstig proxy som har cachat hans respons och fortsätter att skicka med cookies som egentligen inte kommer från hans webläsare?
Om man ska försöka återskapa problemet så är det nog i den änden man ska börja nysta ..
Nu har jag också fått samma problem. Vet inte hur. Men nu plöstligt kan jag inte logga ut. Då jag loggar ut är fortfarande cookiens innehåll kvar.
Detta händer ytterst sällan. Endast en person har rapporterat detta. Och nu får jag det. Min sektretess är inställd på att tillåta alla cookies och jag innehar IE 6.0.
Hur kommer detta sig?
Kod som raderar cookies:
Response.Cookies("ID") = ""
Response.Cookies("ID").Expires = date() -1
Response.Cookies("Password") = ""
Response.Cookies("Password").Expires = date() -1
Kod som skapar cookies:
Response.Cookies("ID") = Session("ID")
Response.Cookies("Password") = Session("Password")
Response.Cookies("ID").Expires = "December 22, 2007"
Response.Cookies("Password").Expires = "December 22, 2007"
cyprysMedlem sedan dec. 20003 563 inlägg DU behöver inte fylla cookien med ett tomt värde om du ändå skall förstöra den ögonblicket efter.
Jag tror inte att felet ligger i förstörelsen i cookien utan i vägen dig. Är det säkert att inloggningen samt utloggningen använder rätt data?
response.cookies("password").expires = now()
funkar i alla fall.
Jag skall testa med now(). Återkommer om det uppkommer igen. (kanske någon månad)
:)
Hej igen!
Det verkar inte fungera. Testade följande:
Om jag testar att köra Response.Cookies("ID") = "" , så förändras Response.Cookies("ID") inte.
Varför?
@ndersMedlem sedan juni 200032 969 inlägg Mer kod. Ligger koden i en if-sats? är du isåf säker på att den if-satsen körs?
Har du on error resume next i koden så ta bort.
mvh
Loggaut.asp:
<%
Session.Abandon
Response.Cookies("ID") = ""
Response.Cookies("ID").Expires = date() -1
Response.Cookies("Password") = ""
Response.Cookies("Password").Expires = date() -1
Response.Redirect "default.asp"
%>
Filen som är inkluderad på varje utom loggaut.asp:
<%
If Request.Cookies("ID")<>"" Then
Session("ID") = Request.Cookies("ID")
Session("Password") = Request.Cookies("Password")
End If
[blue]' En if-sats mot databas för att kontrollera om uppgifter är korrekta[/blue]
%>
before.asp: (efter inloggningsformuläret)
<%
[blue]' En if-sats mot databas för att kontrollera om uppgifter är korrekta[/blue]
If Request.Form("inloggning") = "on" Then
Response.Cookies("ID") = Session("ID")
Response.Cookies("Password") = Session("Password")
Response.Cookies("ID").Expires = "December 22, 2007"
Response.Cookies("Password").Expires = "December 22, 2007"
End If
Response.Redirect "default.asp"
%>
Som sagt så uppkommer detta endast ibland. Oftast då man varit inloggad några veckor och cookien legat orörd länge. I IIS:ens loggfil kan man se att cookien inte försvinner då man går in i loggaut.asp.