19. februar 2005 - 17:46Der er
11 kommentarer og 1 løsning
Forms authentication
Hey all!
Jeg står og skal lave lidt forms authentication på et lille website. Jeg har min login-side, min default side, samt et par andre. I min Web.config har jeg angivet, at alle anonyme brugere skal nægtes adgang til alle andre sider end login-siden ( <deny users="?"> ) og min startside er selvfølgelig default-siden.
Det kører sådan set også meget fint. Jeg har lavet en knap på Login-siden, som udfylder diverse Sessions med værdier, som bruges af alle de andre sider. Problemet er, at hvis jeg benytter persistent cookies (som en slags autologin), bliver login-siden ikke vist når brugeren på et senere tidspunkt vender tilbage til websitet, fordi han allerede er logget ind (det er jo også fint nok- MEN!) Dette betyder, at alle disse session-værdier, som sættes ved klik på Login-knappen, ikke bliver sat ved et senere besøg. Det holder jo ikke, for så laver alle de andre sider fejl.
Så hvor skal jeg placere den kode, som udfylder mine session-variabler, når en bruger logges ind -- om det sker via login-siden eller automatisk ved brug af persistent cookies ...
Nu ved jeg ikke hvor avanceret dit site er, men kan du ikke lave en side som alle andre sider nedarver fra (i stedet for den standardside som alle webforms nedarver fra).
Herinde kan du så checke om brugeren kommer med en cookie og hvis det er tilfældet (og han (m/k) ikke allerede er logget på), logges han på med de informationer som "kagen" kommer med, dvs. alle session-variable sættes som om det var et almindeligt login...
Hvis brugeren er logget på, køres der blot videre som om intet var hændt...
Sessions er ikke tilgængelige i Global.asax ... Jeg har forgæves forsøgt at få fat på et session-objekt i AuthenticateRequest, som kunne bruges, men jeg har ikke kunne få det til at virke.
du kan evt. lave dit eget IPrincipal object og gemme det i Request.User så du har alt relevant logik samlet i et enkelt object fremfor spredt ud rundt omkring.
Jeg kan ikke lige finde Request.User, og jeg har heller ikke prøvet at lave mit eget IPrincipal objekt endnu, men det er vel noget jeg kunne undersøge nærmere :)
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.