[ASP.NET C#]Afdwingen session end

Pagina: 1
Acties:

  • 6K
  • Registratie: September 2002
  • Laatst online: 19-01-2025

6K

is ook zo...

Topicstarter
in hou via een appliaction variabele bij hoeveel sessies er draaien in de applicatie. De time-out van een sessie staat op 20 minuten en dat wil ik ook zo houden.

Dat betekent dus dat ik niet het huidge aantal sessies zie, maar alle sessies van de afgelopen 20 minuten.

Is er een simpele manier om een Session.End af te dwingen als iemand de website verlaat?

٩(͡๏̯͡๏)۶ ٩(●̮̮̃•̃)۶


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Dat kan je bij mijn weten niet.

Hoe kan de server nu nl. weten of de website verlaten wordt, als de browser gewoon afgesloten wordt, er gewoon naar een andere site gesurft wordt etc....

https://fgheysels.github.io/


  • 6K
  • Registratie: September 2002
  • Laatst online: 19-01-2025

6K

is ook zo...

Topicstarter
dat dacht ik idd ook al, ik hoopte dat je met Javascript misschien sneaky iets kon regelen, maar ik had er ook geen idee bij moet ik eerlijk zeggen.

٩(͡๏̯͡๏)۶ ٩(●̮̮̃•̃)۶


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

6K schreef op 12 maart 2004 @ 10:55:
dat dacht ik idd ook al, ik hoopte dat je met Javascript misschien sneaky iets kon regelen, maar ik had er ook geen idee bij moet ik eerlijk zeggen.
Da's niet betrouwbaar

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • EfBe
  • Registratie: Januari 2000
  • Niet online
HttpContext.Session.Abandon()

gebruik je om de session dedicated te killen.
je kunt een logout knop maken die dus die routine aanroept.

[ Voor 66% gewijzigd door EfBe op 12-03-2004 18:11 ]

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

EfBe schreef op 12 maart 2004 @ 18:11:
HttpContext.Session.Abandon()

gebruik je om de session dedicated te killen.
je kunt een logout knop maken die dus die routine aanroept.
Klopt, maar dit geldt alleen als je op een knopt drukt. Indien iemand weg navigeert van een website of de browser sluit, kan je dit niet betrouwbaar detecteren.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Wat je kunt doen is de session timeout erg laag zetten, bijvoorbeeld op 1 a 2 minuten. Vervolgens zou je via een hidden frame een pagina iedere 1 a 2 minuten kunnen laten verversen (bijvoorbeeld via een META refresh of via Javascript) zodat de sessie niet verloopt als een bezoeker niet binnen de gestelde sessie timeout zelf een nieuwe pagina opvraagt.

Hiermee bereik je dat je in ieder geval een realistischer beeld hebt van de echte hoeveelheid sessies op een server. Daarnaast is dit een redelijk goed mechanisme om een zgn push effect te faken, bijv. als je een web-based e-mail client wilt maken die automatisch laat weten dat er nieuwe mail is.

Tenslotte is het een redelijke oplossing als je hele kostbare resources in je sessie hebt zitten. Hoewel dit natuurlijk zoveel mogelijk voorkomen moet worden is het niet altijd uit te sluiten en in zo'n geval wil je natuurlijk dat een sessie zsm verloopt als een gebruiker de website verlaat.

Nadeel van deze oplossing is natuurlijk de grotere hoeveelheid verkeer naar je website, hoewel de verborgen pagina natuurlijk erg eenvoudig gehouden kan worden. Daarnaast betekent het ook dat als een gebruiker om wat voor reden dan ook een paar minuutjes geen netwerkverbinding heeft dat zijn sessie dan sneller verloopt, wat vervelende gevolgen kan hebben.

  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 27-05 11:53
EfBe schreef op 12 maart 2004 @ 18:11:
HttpContext.Session.Abandon()

gebruik je om de session dedicated te killen.
je kunt een logout knop maken die dus die routine aanroept.
Kan je niet een timer maken in de global.ascx (thread) die 20 minuten meeloopt, en dan alle sessies killed?

  • 6K
  • Registratie: September 2002
  • Laatst online: 19-01-2025

6K

is ook zo...

Topicstarter
die 20 minuten wil ik houden ivm inloggen. Mensen moeten weg kunnen navigeren en weer terug kunnen komen zonder in te hoeven loggen. een timeout van 2 minuten is echt te weinig. zelfs met een refresh dus.

zo'n logout knop is wel een optie, maar ik vrees dat de gemiddelde gebruiker daar niet op drukt als ze weg willen.

ik was al een beetje bang dat het niet kon, omdat ik er helemaal nergens iets over terug kon vinden :(

٩(͡๏̯͡๏)۶ ٩(●̮̮̃•̃)۶


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

6K schreef op 12 maart 2004 @ 22:22:
die 20 minuten wil ik houden ivm inloggen. Mensen moeten weg kunnen navigeren en weer terug kunnen komen zonder in te hoeven loggen. een timeout van 2 minuten is echt te weinig. zelfs met een refresh dus.

zo'n logout knop is wel een optie, maar ik vrees dat de gemiddelde gebruiker daar niet op drukt als ze weg willen.

ik was al een beetje bang dat het niet kon, omdat ik er helemaal nergens iets over terug kon vinden :(
Als het is vanwege inloggen, waarom gebruik je daar geen cookies voor?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Flard
  • Registratie: Februari 2001
  • Laatst online: 26-05 10:11
6K schreef op 12 maart 2004 @ 22:22:
die 20 minuten wil ik houden ivm inloggen. Mensen moeten weg kunnen navigeren en weer terug kunnen komen zonder in te hoeven loggen. een timeout van 2 minuten is echt te weinig. zelfs met een refresh dus.

zo'n logout knop is wel een optie, maar ik vrees dat de gemiddelde gebruiker daar niet op drukt als ze weg willen.

ik was al een beetje bang dat het niet kon, omdat ik er helemaal nergens iets over terug kon vinden :(
Zolang ze op de site zitten, is er dus ook een (I)Frame dat steeds (een klein deel van) de pagina doet vernieuwen, en dus verloopt de sessie niet.
Dus als je dat frame elke minuut laat refreshen, en je laat de sessies na 2 minuten verlopen, dan heb je denk ik een vrij accuraat beeld...

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
6K schreef op 12 maart 2004 @ 22:22:
die 20 minuten wil ik houden ivm inloggen. Mensen moeten weg kunnen navigeren en weer terug kunnen komen zonder in te hoeven loggen. een timeout van 2 minuten is echt te weinig. zelfs met een refresh dus.

zo'n logout knop is wel een optie, maar ik vrees dat de gemiddelde gebruiker daar niet op drukt als ze weg willen.

ik was al een beetje bang dat het niet kon, omdat ik er helemaal nergens iets over terug kon vinden :(
Als je ASP.NET gebruikt, dan kan je gebruik maken van ASP.NET forms authentication. Lees daar eens eea over.

https://fgheysels.github.io/


  • 6K
  • Registratie: September 2002
  • Laatst online: 19-01-2025

6K

is ook zo...

Topicstarter
nah whoami, ik ben een goede GoT-ter ;)
ik heb naar aanleiding van deze thread wel naar forms aut. gekeken.

Ik wil nu enerzijds de sessie actief houden (20 minuten) en anderzijds zo actueel mogelijk het aantal sessies zien, maar ik zit me nu te bedenken... ik kan natuurlijk in een cookie zetten wat ik wil 8)7 dus daar ligt idd een heel stuk oplossing

[ Voor 90% gewijzigd door 6K op 13-03-2004 00:39 ]

٩(͡๏̯͡๏)۶ ٩(●̮̮̃•̃)۶


Verwijderd

6K schreef op 13 maart 2004 @ 00:36:
Ik wil nu enerzijds de sessie actief houden (20 minuten) en anderzijds zo actueel mogelijk het aantal sessies zien
Je begrijpt het volgens mij niet helemaal. In de oplossing met de verborgen (i)frame blijft de sessie ook gewoon actief zolang de bezoeker op je site blijft, het enige verschil is dat de sessie veel sneller verloopt als de gebruiker daadwerkelijk de site verlaat, doordat de timeout veel lager is gezet.

Normaal gesproken heeft een gebruiker twintig minuten tussen clicks voordat de sessie verloopt maar doordat de verborgen (i)frame zichzelf iedere x minuten ververst verloopt de sessie dus niet ondanks de veel lagere timeout.

  • maikel
  • Registratie: Januari 2001
  • Laatst online: 16:24
Verwijderd schreef op 13 maart 2004 @ 12:34:
[...]


Je begrijpt het volgens mij niet helemaal. In de oplossing met de verborgen (i)frame blijft de sessie ook gewoon actief zolang de bezoeker op je site blijft, het enige verschil is dat de sessie veel sneller verloopt als de gebruiker daadwerkelijk de site verlaat, doordat de timeout veel lager is gezet.

Normaal gesproken heeft een gebruiker twintig minuten tussen clicks voordat de sessie verloopt maar doordat de verborgen (i)frame zichzelf iedere x minuten ververst verloopt de sessie dus niet ondanks de veel lagere timeout.
Ik heb het vermoeden dat in het vetgedrukte stuk nu juist zijn probleem zit.

Maar als ie gewoon cookies gebruikt is het helemaal geen probleem dat een sessie eindigt als de bezoeker even naar een andere site gaat.

  • 6K
  • Registratie: September 2002
  • Laatst online: 19-01-2025

6K

is ook zo...

Topicstarter
mja maikel ik denk inderdaad dat het zo zal gaan worden. Ik wil inderdaad na het verlaten van de website nog terugkunnen zonder in te hoeven loggen, maar in de tussentijd wil ik wel die sessie niet meer geldig hebben. Een cookie zal dus de enige oplossing daarvoor zijn in combinatie met zo'n (i)frame refresh.

٩(͡๏̯͡๏)۶ ٩(●̮̮̃•̃)۶

Pagina: 1