Sessionsstyring på Jobnet
Udarbejdet af Asger Høyen Nielsen:
- Vi kører med sliding expiration, hvilket betyder at serveren fornyer en timer på X minutter, ved hvert request i den pågældende session.
- Når X minutter er gået siden seneste request i sessionen, terminerer serveren sessionen.
- X er konfigurerbart gennem settings.xml -> web.config.template -> web.config.
- X er som standard 20 i alle miljøer, undtagen localhost, hvor den er 60.
- Når en Jobnet-side er indlæst, sendes et request til serveren (RenewSession.ashx), som returnerer et timestamp.
- Efter X minutter fra dette timestamp antager klienten er der er indtruffet timeout på serveren og følgende sker:
- Brugeren får en modal dialog, med oplysning om timeout.
- Der sendes et logout request til serveren (Logout/EndSession).
- Session storage slettes.
- Tryk på "Tilbage til Jobnet" sender brugeren til login-side.
- Y minutter før timeout, advares brugeren om kommende timeout i en modal dialog.
- Ved tryk på OK, fornys session.
- Der vises en nedtælling fra Y minutter.
- Y er konfigurerbart gennem settings.xml -> web.config.template -> web.config.
- Y er som standard 5.
- Så længe brugeren er aktiv, fornys sessionen hvert minut (via kald til RenewSession.ashx).
- aktiv vil sige at der forekommer klik eller tastaturtryk i html-elementer af typen input, select og textarea, samt tastaturtryk i editor-komponenten på Faglig Profil på cv (tinymce editor).
- Klientens håndtering af timeout og aktivitet genoptages efter alle former for suspendering, dvs faner der har været i minimeret, uden for viewport, device/os i sleep/suspend etc.
- Hvis Sessionsfornyelse (ajax kald til RenewSession.ashx) fejler, vises en fejlmeddelelse i modal dialog til brugeren.
- Kan indtræffe ved mistet netværk, server nede, IIS reset mv.
- Klientens håndtering af timeout virker på tværs af faner som er startet i samme session.
- Fornyelse af session i en fane medfører fornyelse i alle faner.
- Tryk på OK lukker advarsler i alle faner.
- Alle former for terminering af session bevirker udlogning af nemLogin.
- Da vi aktivt terminerer sessionen på serveren, når klienten detekterer timeout, bør der normalt ikke kunne forekomme situationer, hvor brugeren oplever at få en besked om timeout og derefter kan arbejde videre i samme session.
- Styling af modal dialoger følger Jobnet standard.
- Når sessionen er termineret på server, uanset om det skyldes serverens eget timeout eller logout request fra klient, er det ikke muligt at vende tilbage til sessionen ved at genåbne fane, bruge browser-back mv.
- Virker i moderne browsere jfr Jobnets browseranbefalinger.
- Der kan ikke forekomme situationer hvor mere end én af de tre nævnte modal dialoger er åbne.
- Print-dialoger fra browseren forstyrrer ikke funktionaliteten.