[asp.net] sessie beheer, inloggen en uitloggen

Pagina: 1
Acties:
  • 132 views sinds 30-01-2008
  • Reageer

  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Mijn website maakt gebruikt van Sessions

De eerste keer dat een gebruiker met zijn browser de pagina bezoek krijgt hij een
sessie id, (dat is natuurlijk normaal)

Maar goed, als de gebruiker dan eenmaal klaar is kan hij op de knop afmelden drukken.

Dan wordt er een functie aangeroepen die
Session.RemoveAll en
Session.Abandon doet

Maar nu zit je nog op de uitlogpagina (is dezelfde als de inlogpagina),
en hier kun je dus ook weer inloggen als je dat wilt.

Maar zodra ik daar dan inlog dan ga ik gelijk weer terug naar de
inlogpagina met een sessie timeout (dat is een eigengeschreven functie)
dat klopt omdat er geen waarden in het sessieobject zitten.

Na wat nader onderzoek blijkt dat alle values leeg zijn, maar het sessionID blijft wel bestaan
met andere woorden de sessie blijft nog steeds geldig.

Hoe kan ik nou zeggen dat de sessie verwijdert moet worden, en als men inlogd dat je dan opnieuw een sessie toegewezen krijgt
want ook bij de loginpagina worden weer variabelen toegewezen aan het sessie object, maar die blijven leeg
omdat je volgens mij session.abandon hebt gedaan

Wie kan me hier iets meer over vertellen ?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:44

gorgi_19

Kruimeltjes zijn weer op :9

Als je Session.Abandon doet, vervallen de sessie-variabelen pas aan het einde van de pagina (en niet op het moment dat je Session.Abandon uit voert).

Wat ik me wel af vraag: .Net heeft de namespace System.Web.Security, welke je naar mijn idee heel goed kan gebruiken in dit geval.

http://samples.gotdotnet....spplus/doc/formsauth.aspx

Maar wat is er zo erg dat je nog steeds hetzelfde SessionID hebt? Die is naar mijn idee alleen bedoeld om te kunnen identificeren 'wie' een request doet.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Ja, het is niet erg dat het sessionID nog bekend is, maar ik wil eigelijk als de gebruiker afmeldt dat ook de sessie voorbij is.

Ik weet niet als de gebruiker dan via het loginscherm naar een andere website toegaat wat er dan gebeurt met die sessie, wordt hij dan wel verwijdert of blijft hij dan gewoon bestaan voor 20 min.

Dat linkje dat je gaf heb ik al gezien en wordt ook al toegepast.

Maar ook is het zo, dat als je jezelf hebt afgemeld (dan is dus session.abandon uitgevoerd)
Dan als je dan weer je naam en wachtwoord invoerd en op login drukt dan kom je gelijk weer terug omdat die check op de index pagina kijkt of die sessie variabelen gevuld zijn (die worden al gevuld in de login functie), dus dan kom je gelijk weer terug met een andere foutmelding.

Maar als je dan weer opnieuw je naam en wachtwoord invoerd dan gaat het wel goed

Dus je hebt gelijk dat session.abandon wordt uitgevoerd op het laatst, maar wat is dan een makkelijke betrouwbare manier

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:44

gorgi_19

Kruimeltjes zijn weer op :9

dominion99 schreef op 04 oktober 2002 @ 10:44:
Ja, het is niet erg dat het sessionID nog bekend is, maar ik wil eigelijk als de gebruiker afmeldt dat ook de sessie voorbij is.

Ik weet niet als de gebruiker dan via het loginscherm naar een andere website toegaat wat er dan gebeurt met die sessie, wordt hij dan wel verwijdert of blijft hij dan gewoon bestaan voor 20 min.

Dat linkje dat je gaf heb ik al gezien en wordt ook al toegepast.

Maar ook is het zo, dat als je jezelf hebt afgemeld (dan is dus session.abandon uitgevoerd)
Dan als je dan weer je naam en wachtwoord invoerd en op login drukt dan kom je gelijk weer terug omdat die check op de index pagina kijkt of die sessie variabelen gevuld zijn (die worden al gevuld in de login functie), dus dan kom je gelijk weer terug met een andere foutmelding.

Maar als je dan weer opnieuw je naam en wachtwoord invoerd dan gaat het wel goed

Dus je hebt gelijk dat session.abandon wordt uitgevoerd op het laatst, maar wat is dan een makkelijke betrouwbare manier
Een extra tussenpagina maken, als ik je goed begrepen heb.

Bijvoorbeeld:
logout.asp
ASP:
1
2
3
4
5
<%
Session.RemoveAll
Session.Abaondon
Response.Redirect "index.asp"
%>

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Ja zoiets kan wel werken.

Alleen ik heb in de global file een teller gezet op het aantal sessie, maar die blijft maar oplopen, ondanks dat ik bij Session_End de teller met -1 verlaag
Hoe kan dat dan ook al sluit ik de browser het maakt geen verschil

Trouwens hoe kun je ISS, ff alle sessies laten opschonen, oftewel verwijderen

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:44

gorgi_19

Kruimeltjes zijn weer op :9

dominion99 schreef op 04 oktober 2002 @ 11:29:
Ja zoiets kan wel werken.

Alleen ik heb in de global file een teller gezet op het aantal sessie, maar die blijft maar oplopen, ondanks dat ik bij Session_End de teller met -1 verlaag
Hoe kan dat dan ook al sluit ik de browser het maakt geen verschil
Klopt; een sessie wordt, beeindigd, maar direct weer opnieuw aangemaakt. Verder vraag ik mij af in hoeverre een sessie echt beeindigd wordt. Maar wat wil je precies hebben? Het aantal bezoekers op je site (in de vorm van: actieve bezoekers) of het aantal ingelogde bezoekers?)
Trouwens hoe kun je ISS, ff alle sessies laten opschonen, oftewel verwijderen
1. 20 minuten wachten
2. IIS restarten. (Ik neem aan: ISS = IIS?)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Nee ik hoef niet te weten hoeveel bezoekers er zijn, dan doe ik dat wel anders
Maar ik wou het weten ivm met het geheugen van de server.

[edit]
Ja ik bedoel ook IIS, foutje
Pagina: 1