15. december 2006 - 14:19Der er
6 kommentarer og 1 løsning
Problem med FormsAuthentication og session
Jeg har et site hvorpå jeg bruger FormsAuthentication, derud over har jeg en masse ekstra oplysninger omkring personen der er logget ind gemt i session. Nu er problemet at de sessioner ikke må blive nedlagt før FormsAuthentication udløber og hvis de gør så skal systemet sørge for at logge brugeren ud.
Derudover 2 små funktioner til returnering af UserId og UserName
Shared ReadOnly Property UserId() As Integer Get Dim sSessionData As String()
If System.Web.HttpContext.Current.User.Identity.IsAuthenticated Then sSessionData = System.Web.HttpContext.Current.User.Identity.Name.Split("¤"c) UserId = Convert.ToInt32(sSessionData(0)) Else UserId = Nothing End If End Get End Property
Shared ReadOnly Property UserName() As String Get Dim sSessionData As String()
If System.Web.HttpContext.Current.User.Identity.IsAuthenticated Then sSessionData = System.Web.HttpContext.Current.User.Identity.Name.Split("¤"c) UserName = sSessionData(1) Else UserName = Nothing End If End Get End Property
Kan du ikke bruge Session_End i global.asax. Kalde logout på formsauth. hvis sessionen løber ud. Og kalde //luk alle session og log bruger af. //Send bruger til login.aspx med meddelelser om at brugeren er logget af Session.Abandon(); FormsAuthentication.SignOut();
Kan du ikke bare sørge for at sætte udløbstiderne så de passer ... F.eks. at din authentication udløbe 2 min. før din session (den er default sat til 30 minutter).
chaos->Session_End spiller kun hvis du benytter inproc sessionstate.
Syntes nu også at løsningen fra dr_chaos burde overvejes, så du sikrer at begge objekter har samme levetid.
Husk også på at dine Sessions dør ved upload til bin-mappen eller ved opdatering af web.config. Ikke særlig smart, hvis man udvikler på et projekt som har andre brugere end en selv.
Har på et tidligere tidspunkt overvejet at bruge forslaget fra dr_chaos, men kunne ikke lige få det til at spille helt som ønsket.
Mine sesioner bruger StateServer også virker dr_chaos forslag vist desværre ikke. jeg er helt enig i at det havde været en bedre løsning!
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.