Moskus Skrevet 16. november 2011 Del Skrevet 16. november 2011 Jeg er skikkelig amatør når det gjelder asp.net, og trenger litt hjelp her. Jeg vil at brukeren (det vil si "jeg") skal forbli innlogget når jeg huker av checkboksen "Forbli innlogget". Lukker jeg nettleseren og åpner den igjen, skal jeg da slippe å logge inn på nytt, typisk som forumet her. Jeg har følgende for å logge inn (hele innloggingssystemet er løst basert på denne turorialen): Private Function Login(ByVal user As String, ByVal pass As String, ByVal keeploggedin As Boolean) As String If ValidateUser(user, pass) Then Dim strRole As String = AssignRoles(user) Dim date_howlong As Date = DateTime.Now.AddYears(1) Dim fat As FormsAuthenticationTicket = New FormsAuthenticationTicket(1, user, DateTime.Now, date_howlong, keeploggedin, strRole, FormsAuthentication.FormsCookiePath) Dim c As New HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(fat)) Response.Cookies.Add(c) Response.Redirect(FormsAuthentication.GetRedirectUrl(user, Nothing)) Else Return "Not logged in! You have entered the wrong username/password..." End If Return "" End Function ... som etter det jeg har forstått herfra skal være riktig hvis man ønsker å legge til roller eller annen data. ... og Dim id As FormsIdentity = CType(User.Identity, FormsIdentity) Dim ticket As FormsAuthenticationTicket = id.Ticket Response.Write("IsPersistent: " & ticket.IsPersistent.ToString) ....gir meg "ISPersistent: True, og alt burde være vel. Men lukker jeg nettleseren og åpner den igjen, er jeg blitt logget ut. Mens jeg skriver dette slår det meg at jeg ikke sjekker cookie'n når jeg returnerer til siden... men jeg har ikke peiling på hvordan det gjøres? (Jeg trodde vel i utgangspunktet ikke det var nødvendig...) Noen som kan peke ut riktig retning? På forhånd takk for hjelpen! Lenke til kommentar
xibriz Skrevet 16. november 2011 Del Skrevet 16. november 2011 (endret) Jeg vet ikke hvordan det er med ASP.NET og IIS, men i PHP og Apache er det en config-instilling om sesjonen skal gå ut når man lukker nettleseren. Så hvis det er likt for ASP.NET, og hvis du ikke har kontroll over instillingene til serveren, så kanskje en slik innstilling (hvis den finnes) kan settes fra koden. Happy googeling PHP.ini: ; Lifetime in seconds of cookie or, if 0, until browser is restarted. ; http://php.net/session.cookie-lifetime session.cookie_lifetime = 0 Endret 16. november 2011 av xibriz Lenke til kommentar
Moskus Skrevet 17. november 2011 Forfatter Del Skrevet 17. november 2011 Hehe! Takk! Hvis jeg har forstått meg selv riktig ( ), vil jeg faktisk at sesjonen IKKE skal gå ut når man lukker browseren, og jeg trodde det var det "IsPersistent" tok seg av... Lenke til kommentar
brgr Skrevet 24. november 2011 Del Skrevet 24. november 2011 Du må angi når kjeksen skal utløpe, type HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket)); cookie.Expires = ticket.Expiration; eventuelt om du kan legge inn f.eks cookie.Expires = DateTime.Now.AddDays(14) Dette er C#.Net men ganske likt som VB.Net Lenke til kommentar
Moskus Skrevet 25. november 2011 Forfatter Del Skrevet 25. november 2011 Du må angi når kjeksen skal utløpe, type HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket)); cookie.Expires = ticket.Expiration; eventuelt om du kan legge inn f.eks cookie.Expires = DateTime.Now.AddDays(14) Er det ikke det jeg gjør her da? Dim fat As FormsAuthenticationTicket = New FormsAuthenticationTicket(1, user, DateTime.Now, date_howlong, keeploggedin, strRole, FormsAuthentication.FormsCookiePath) Dim c As New HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(fat)) ...Expiration ligger jo i Ticket'en. Eller? Jeg kan få fra siden og tilbake igjen innnenfor Expiration Date helt problemfritt, den biten fungerer. Men det gjelder bare helt til jeg lukker nettleseren. Hvis jeg lukker og åpner nettleseren må jeg logge på på nytt... Lenke til kommentar
brgr Skrevet 25. november 2011 Del Skrevet 25. november 2011 Du setter for når selve billetten for autentiseringen skal utløpe ja. Men ikke hvor lenge cookien skal være gyldig. Funksjonen FormsAuthentication.Encrypt() gir bare en tekst string som blir lagret i en cookie. Denne gir ingen parametre for hvordan cookien skal opptre med tanke på varighet osv. Lenke til kommentar
Moskus Skrevet 25. november 2011 Forfatter Del Skrevet 25. november 2011 (endret) Du setter for når selve billetten for autentiseringen skal utløpe ja. Men ikke hvor lenge cookien skal være gyldig. Funksjonen FormsAuthentication.Encrypt() gir bare en tekst string som blir lagret i en cookie. Denne gir ingen parametre for hvordan cookien skal opptre med tanke på varighet osv. Ah! Da skal jeg prøve det også. EDIT: Du hadde rett! Tusen hjertelig takk for hjelpen! Endret 25. november 2011 av Moskus Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå