Hvad er den bedste måde, at vise en besked til brugeren, når hans session udløber? Mener er have læst noget, et sted, hvor der vist stod at det ikke var optimalt at bruge Session_End eventen?
Du har sikkert en sessions-variabel, der skal være sat, hvis personen er "aktiv". Den tester du på øverst i Page_Load, hvor det er relevant. Og så rederecter du til "detvarvelnokaergeligtmendinsessionfindesikkelaengere.aspx", hvor du kan skrive at han skal starte forfra.
Der er ikke noget reelt problem, andet end at jeg ønsker at vise en besked til brugeren på startsiden, således at at han ved, at han er blevet logget ud pga. hans session er udløbet. Det må da være et meget almindeligt ønske, som ikke kræver det helt store? Jeg kan ikke få Session_End eventen til at blive kaldt, trods jeg har prøvet at sætte sessionstate til InProc i web.configen...
Kan du vise mig hvordan du vil løse opgaven evt. via java script?
1) Gør noget med et script på serveren hvert 5. minut, for at holde sessionen i gang. 2) Tæl ned til sessiontimeout i browseren. Prøv http://n0p.com/837154.php og vent i 11 sekunder.
Hvis du nu gik til linket som erikjacobsen har givet dig og så højreklikker med musen og vælger "Vis kilde" - så viser han dig jo netop, hvordan du skal gøre det med javascript ;-)
Hey, sorry...var lidt for hurtig...jeg troede bare at der var en mere specifikt måde at gøre det på i asp.net?
Dvs. at jeg så skal bruge det script i min masterpage alene? Jeg tænker på, i min web.config angiver man jo også et session timeout...hvordan påvirker de hinanden`? Dette kunne selvfølgelig hurtigt løses med at sætte antal min i web.config'en til max.
På netbank popper der ofte en besked frem efter fx. 15min, om ens session er ved at udløbe og om man derfor ønsker at forlænge denne? Kan i også vise mig hvordan dette gøres?
Til sidst, kan dette kobles sammen med AJAX, således at man kan designe en pæn popup, når man ønsker at vise beskeden til brugeren?
At når der fx. var gået 15 min...så poppede der en besked frem til brugeren om, at hans session var udløbet og om han ønkede at forlænge den. Beskeden ønsker jeg at vise på samme måde som jeg gør på resten af sitet via AJAX ConfirmButtonExtender og ModalPopupExtender...så hvis det også er muligt her, ville det bare være super!
Det jeg viser dig har ikke noget med AJAX at gøre - det er bare Javascript. Det måler selvfølgelig intet med hensyn til sessions udløb, men blot om der er gået et stykke tid, fx. 15 minutter. Hvad du viser til brugeren kan du måske vise ham på samme måde som du gør nu.
Men det der måles er tiden fra siden bliver vist. Hvert kald med AJAX holder sikkert sessionen i live, så ideelt set skal du programmere, at den tæller forfra ved hvert kald med AJAX.
Du kan godt lave et javascript der tæller fra det antal minutter der er sat i Timeout - men det bliver ikke helt præcist. Plus, har brugeren ikke slået javascript til, hvad så ?
Du kan ikke lave noget af det på server siden for hver gang du kalder serveren bliver din session "refreshed".
Netbanker bruger oftes en Java klient til deres applikation, det er bare lidt tungt at gøre i dette tilfælde hvis du kun er ude på, at få vist en timeout besked.
Hej Daniel...tak for dit indlæg...jeg synes nu ikke jeg kræver så meget, men synes blot at det ville være god skik, at informerer brugeren om, hvorfor han er logget ud, ved at vise en besked på forsiden. Jeg er med på teorien...men troede trods alt, at det var noget som mange også brugte og at der fandtes et simpelt svar...
Hvordan fungere asp.net Session_End event så, den må vil blive kaldt server side? Jeg kan dog ikke umiddelbart få den til at blive kaldt, trods jeg har sat SessionState/InProc til true in min web.config...
"hvorfor han er logget ud" ... Det er jo igen det der med at du skal bestemme dig. Vil du:
1) Fortælle brugeren at han er lige ved at bliver logget ud, så han kan nå at gøre noget inden? 2) Fortælle brugeren efterfølgende, at han er logget ud, og skal starte forfra?
Begge dele kan du med lidt god vilje gøre ud fra hvad der er skrevet her. Og nej: session_end eventet kan ikke kommunikere med brugerens browser. Den kan bruges til at "rydde op" på serveren.
erik... i det jeg ikke selv kender mulighederne, ja så har jeg nok spurgt om noget forskelligt...
Den simpleste løsning, må selvfølgelig være din nr. 2 og mere avanceret nr. 1 jeg er faktisk interesseret i, at vide hvordan jeg kan implementere dem begge...jeg benytter masterpage og contentpages...og ønsker at kunne sætte timeout på div. contentpages, og vise besked på den contentpage, som brugeren redirektes til, hvis det er muligt? Eller det er måske kun muligt, at vise en popup besked?
Ok. Og det jeg så ikke forstår er at begge dele er behandlet i de kommentarer der er kommet.
1.: 03/07-2008 23:45:37 (m.fl.) 2.: 04/07-2008 09:46:15 punkt 1) (hvis det skal ske automatisk), eller 04/07-2008 09:46:15 punkt 2) (hvis brugeren skal spørges).
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.