Navigatie

Contact

Send mail to the author(s) E-mail

View Richard Soeteman's profile on LinkedIn

RSS 2.0 | Atom 1.0 | CDF

Archief

Categorieën

Blogroll

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Sign In

Zoeken

# Monday, 23 January 2006
Monday, 23 January 2006 20:19:16 (GMT Standard Time, UTC+00:00) ( ASP.NET )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Afgelopen week liep ik tegen een probleem aan waarbij authenticatie timeout minuten eerder optrad dan sessie timeout, terwijl beide op 20 minuten stonden ingesteld. De oorzaak was een verschil tussen de werking van sessie timeout en authenticatie timeout.

Sessie timeout wordt elke keer vernieuwd wanneer een pagina wordt opgevraagd. Dus wanneer je in je web.config aangeeft dat de sessie na 20 minuten verloopt, zal deze elke keer dat een pagina wordt opgevraagd 20 minuten na nu worden gezet(wat logisch is). Authenticatie timeout wordt pas vernieuwd wanneer 50% van de resterende tijd verstreken is. Dus wanneer je de authenticatie timeout dezelfde waarde geeft als sessie timeout zal deze de eerste 10 minuten niet vernieuwd worden. Even terug naar de pagina waar een gebruiker inlogt om 8:00. De volgende waarden worden gezet:

Sessie Timeout = 8:20
Authenticatie Timeout = 8:20

Vervolgens doet de gebruiker na 8 minuten weer een actie. De volgende waarden worden gezet:

Sessie Timeout = 8:28
Authenticatie Timeout = 8:20

Om 8:25 vraagt de gebruiker een pagina op en wordt naar de loginpagina verwezen omdat er een authenticatie timeout is opgetreden. Het menu wordt echter opgebouwd aan de hand van een sessie variabele.  Deze variabele bestaat nog steeds en toont dus het verkeerde menu. Ik heb dit opgelost door authenticatie timeout drie keer hoger te zetten dan sessie timeout.

In het Session_OnStart event van het global.asax bestand log ik middels onderstaande regel de gebruiker automatisch uit wanneer een nieuwe sessie wordt gestart(zelfs als deze niet is ingelogd).

FormsAuthentication.SignOut()

De reden waarom ik dit in het Session_OnStart event heb geplaatst is dat het Session_OnEnd event niet altijd getriggerd wordt en op deze manier weet ik zeker dat een gebruiker niet is ingelogd wanneer een sessie start.

Comments [0] | | # 
# Monday, 16 January 2006
Monday, 16 January 2006 16:26:35 (GMT Standard Time, UTC+00:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Momenteel zit ik op een klus waar VB.NET gebruikt wordt. Daarom ben ik erg blij met de "Paste As Visual Basic" add-in. Waar ik zonder problemen mijn C# code als VB.NET Code kan pasten. Download de add-in hier

Comments [0] | | #