Avatar billede bernhof Nybegynder
19. februar 2005 - 17:46 Der 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 ...

Håber I kan hjælpe.

Mikkel
Avatar billede softspot Forsker
19. februar 2005 - 19:10 #1
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...
Avatar billede bernhof Nybegynder
19. februar 2005 - 20:11 #2
Jo, det var én måde at gøre det på. Jeg takker for idéen - læg gerne et svar. Men jeg venter lige og ser, om der er andre forslag.
Avatar billede softspot Forsker
19. februar 2005 - 20:36 #3
"betal" kun hvis du benytter idéen :)
Avatar billede bernhof Nybegynder
19. februar 2005 - 20:38 #4
Det gør jeg, hvis der ikke er en mere "venlig" måde at gøre det på ;)
Avatar billede burningice Nybegynder
21. februar 2005 - 23:15 #5
du burde kunne bruge HttpApplication.AuthenticateRequest

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebhttpapplicationclassauthenticaterequesttopic.asp

i din global.asax til at sætte dine sessions når at brugeren bliver logget ind
Avatar billede bernhof Nybegynder
22. februar 2005 - 17:57 #6
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.
Avatar billede bernhof Nybegynder
23. februar 2005 - 18:58 #7
Well, det ser ud til at du "vinder", softspot :) Tak for hjælpen - Jeg benytter din løsning.
Avatar billede burningice Nybegynder
23. februar 2005 - 19:06 #8
dine session-variabler, er det nogle brugerrelateret info, eller hvorfor bliver de sat når at en bruger logger ind?
Avatar billede bernhof Nybegynder
23. februar 2005 - 20:58 #9
Brugerelateret info, ja, som jeg bruger ofte og ikke har lyst til at hente fra DB'en hver gang jeg skal bruge det.
Avatar billede burningice Nybegynder
23. februar 2005 - 21:17 #10
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.
Avatar billede bernhof Nybegynder
23. februar 2005 - 22:14 #11
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 :)

Tak for dit svar!
Avatar billede burningice Nybegynder
24. februar 2005 - 07:53 #12
Her er et eksempel på et useobject der implementerer IPrincipal

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secmod/html/secmod20.asp
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester