Toon posts:

[ASP.NET] Sessions

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,
ik ben aan het kijken hoe ik het beste kan omgaan met mijn sessies in ASP.NET.
En nu had ik een paar vraagjes en dingen die mij opvielen:

1)Als ik bijv een pagina hebt met 2 frames, dan triggerd ASP.NET 2x de "Session_Start" functie, met DELZELFDE sessionID.
Waarom is dit?

2)Is het mogelijk om in je applicatie nog te zeggen dat je sessie cookies mag gebruiken of niet, (zodat bij niet cookie accepterende browsers automatisch de sessionID aan de url wordt tegevoegd).

3)Hoe zit het precies om de timeout van de sessie variabele. Telt die vanaf dat de variabele is aangemaakt, of wordt die iedere keer opnieuwe "gezet" als die uitgelezen wordt? (De inlog tijd van de gebruiker varieerd nogal van kort tot zeer lang en er wordt meestal niet netjes afgemeld).

4)Is het mogelijk om sessies oneindig te laten bestaan? Bij 0 geeft ie een foutmelding. Of moet ik gewoon 60*24*365 (1 jaar) of een ander groot getal?

5)Is het mogelijk om op de server alle sessies door te lopen en dat bijv van alles sessies een variabele wijzigen?

6)Sessie koppelen aan IP, is er een extra sessie variabele aangemaakt met het IP erin waarmee die is aangemaakt, die iedere keer weer wordt gecontrolleerd. Of hoe?

7)Kan in in IIS kijken hoeveel en welke sessies er zijn?

Alvast bedankt

[ Voor 2% gewijzigd door Verwijderd op 01-04-2003 11:46 . Reden: ff nummertjes erbij ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:46
[nohtml]
Verwijderd schreef op 01 April 2003 @ 11:40:
Hoe zit het precies om de timeout van de sessie variabele. Telt die vanaf dat de variabele is aangemaakt, of wordt die iedere keer opnieuwe "gezet" als die uitgelezen wordt?
De timeout heeft aan hoelang een sessie-variable geldig mag blijven als ze ongebruikt wordt.
Als je dus een bepaalde sessie-variable gedurende 20 minuten (als dat je time-out is) niet gebruikt (niet uitleest, niet veranderd), dan wordt ze weggegooid.
Is het mogelijk om sessies oneindig te laten bestaan? Bij 0 geeft ie een foutmelding. Of moet ik gewoon 60*24*365 (1 jaar) of een ander groot getal?
Ik denk niet dat het de bedoeling is om sessies oneindig lang te laten lopen.
Zo ga je je resources nooit vrij geven.
Is het mogelijk om op de server alle sessies door te lopen en dat bijv van alles sessies een variabele wijzigen?
Kan je niet gewoon door je sessie-object loopen?
code:
1
2
for( int i = 0 ; i < Session.Count; i++)
Session[i];

oid?

https://fgheysels.github.io/


Verwijderd

Topicstarter
Reply whoami :

1) De timeout wordt dus ook iedere keer op bijv 20 gezet als de sessie var gelezen wordt.

5) Dat is niet wat ik bedoelde. Is het mogelijk om bij op GoT alles sessie van de ingelogde gebruikers te doorlopen. Dus niet van de huidige sessie, maar van alles sessies die op dat moment op/in de server staan.

Verwijderd

Topicstarter
* schop *
Afbeeldingslocatie: http://www.sporthuis-zuid.nl/voetbalschoen.gif

Verwijderd

Topicstarter
* weer een klein schopje... *

weet iemand misschien antwoord op vraag 2 t/m 7 ??

[ Voor 49% gewijzigd door Verwijderd op 03-04-2003 21:20 ]


Verwijderd

Hoe subtiel ;(

Waarom gebruik je het Application object niet als je iets voor alle sessies wil doen? Lijkt me wel zo makkelijk.
Het lijkt me sterk als je alle verschillende open sessies kan benaderen. Dat druist volgens mij lijnrecht in tegen de hele filosofie van sessies. Daar is de Application voor.

Oneindige sessies zijn vrij onzinnig, want als iemand z'n browser killed is de sessie toch al weg. En om nou een jaar lang niet te resetten... Maak dan een simpele page die elke 10 minuten refresht. Dan verloopt je sessie ook niet.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 01 april 2003 @ 11:40:
2)Is het mogelijk om in je applicatie nog te zeggen dat je sessie cookies mag gebruiken of niet, (zodat bij niet cookie accepterende browsers automatisch de sessionID aan de url wordt tegevoegd).
Je kan eens kijken naar Request.Cookies. Echter, ik geloof dat ik ooit ergens gelezen heb, dat deze methodiek niet 100% betrouwbaar is. Een 'tussenpagina' maken, waarin je een cookie plaatst, post, en weer probeert uit te lezen, is afaik de enige 100% betrouwbare oplossing. Deze waarde kan je dan later weer in een session plaatsen (of niet)
3)Hoe zit het precies om de timeout van de sessie variabele. Telt die vanaf dat de variabele is aangemaakt, of wordt die iedere keer opnieuwe "gezet" als die uitgelezen wordt? (De inlog tijd van de gebruiker varieerd nogal van kort tot zeer lang en er wordt meestal niet netjes afgemeld).
Afaik wordt deze gerekend met hits. Als je bv 20 minuten geen request stuurt naar de server, is de session verloren.
4)Is het mogelijk om sessies oneindig te laten bestaan? Bij 0 geeft ie een foutmelding. Of moet ik gewoon 60*24*365 (1 jaar) of een ander groot getal?
Nee, dat kan niet, en als het wel zou kunnen, zou het een ontwerpfout zijn. Een session blijft in het geheugen totdat deze vernietigd is, of totdat de webserver herstart wordt. Als een session variabele dus eeuwig zou kunnen bestaan, zou je een gigantische hoeveelheid geheugen verloren kunnen laten gaan. Wel is eea mogelijk in combinatie met clientside cookies, deze een ID geven, dit ID opslaan in een database en op deze manier bepaalde instellingen ophalen.
5)Is het mogelijk om op de server alle sessies door te lopen en dat bijv van alles sessies een variabele wijzigen?
Nee, maar dat zie je al aan de 'plaats' van een session, in de 'Context.Current'.
Wil je 'sessions' een global scope geven, dan moet je application variabelen gebruiken.
6)Sessie koppelen aan IP, is er een extra sessie variabele aangemaakt met het IP erin waarmee die is aangemaakt, die iedere keer weer wordt gecontrolleerd. Of hoe?
Een sessievariabele is per definitie client gebonden. Ik heb nog nooit meegemaakt dat ik een sessievariabele kon benaderen via een andere sessie.. En aangezien een sessie al verloopt als ik m'n browser sluit :?
7)Kan in in IIS kijken hoeveel en welke sessies er zijn?
Nee. Moet je zelf handmatig bijhouden in een application variabelen. Zie de talloze Active Users voorbeelden.

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1