Toon posts:

[ASP] Sessions

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

Verwijderd

Topicstarter
Hallo mede tweakers,
Ik ben bezig met een klein websiteje, daar moet je kunnen inloggen en gegevens in kunnen voeren.
Voorheen gebruikte ik altijd PHP, maar omdat ze alleen de middelen hadden om met ASP te werken, moet het daarin.

Ik had een wel al wat gevonden over Sessions (in ASP), maar alleen welke properties, methods en events er zijn.
Maar niet hoe ik ze moet gebruiken. (In PHP kon had ik het wel al uitgevonden hoe ik met Sessions moest werken)

Kan iemand mij dit uitleggen, of een voorbeeld geven?

Alvast bedankt.

Verwijderd

Voordat je er aan begint; een aantal voor en nadelen. De nadelen zijn:

1. Session variables zijn Cookies; dus als gebruiker die uit heeft staan...
2. De sessie variabele blijft meestal lang in het geheugen van de server staan (session.timeout is meestal zo'n 15-20 minuten). Niet erg leuk als je grote ADO collecties in een sessie hebt staan...
3.Je hoeft ze niet expliciet de definieeren; bij veel gebruik van die variabelen kan het leiden tot onbegrijpelijke code.


Je maakt ze overigens als volgt

Session([naam variabele]) = [waarde]

Verwijderd

Topicstarter
Bedankt, ik zal het proberen.

Maar zijn er dan betere manieren om de site te beveiligen? Beter als met sessions?


ps
het gaat hierbij om een kleine intranet applicatie.

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
http://www.4guysfromrolla.com/ staat een hoop en op www.w3schools.com ook.

maar sessions is erg simpel.

Session("mySessionVar") = jouwdata 'zet de sessie var.

Response.Write Session("mySessionVar") 'schrijf naar scherm

etc etc.

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


Verwijderd

Op donderdag 09 mei 2002 20:08 schreef bojo het volgende:
Bedankt, ik zal het proberen.

Maar zijn er dan betere manieren om de site te beveiligen? Beter als met sessions?


ps
het gaat hierbij om een kleine intranet applicatie.
het is niet zozeer dat het niet veilig is; het is meer dat de beschikbaarheid en de serverload minder goed is. Maar voor een intranet werkt het prima. Ff wat vragen

1. hoe grote dbase en in welke taal
2. hoeveel gebruikers
3. wat voor server

Verwijderd

Topicstarter
Wat ze daar draaien :
- Windows 2000 (small business) Server
- MS SQL Server
- +- 10 gebruikers

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 09 mei 2002 20:06 schreef brinkmanjr het volgende:
1. Session variables zijn Cookies; dus als gebruiker die uit heeft staan...
Onzin, je kan ook prima sessions dmv get en post vars gebruiken.
De session variables zijn _nooit_ cookies, hooguit de Identifactie van een sessie wordt via een cookie geregeld.
2. De sessie variabele blijft meestal lang in het geheugen van de server staan (session.timeout is meestal zo'n 15-20 minuten). Niet erg leuk als je grote ADO collecties in een sessie hebt staan...
Zet je die in een sessie :?
Sowieso is het niet grappig als je dat in een sessie zet en je krijgt veel gebruikers.
3.Je hoeft ze niet expliciet de definieeren; bij veel gebruik van die variabelen kan het leiden tot onbegrijpelijke code.
Dat is dan een programmeer fout ;)
Als je goede sessie input/output handling hebt heb je daar geen last van. Dan kan je complete objecten of whatever erin stoppen zonder ergens last van te hebben.

Verwijderd

Van 4guys..

* Session variables and cookies are synonymous. So if a user has set his browser not to accept any cookies, your Session variables won't work for that particular web surfer!

** Probeer maar eens een sessie-var te maken als de client cookies heeft uitstaan..


En...

* Since Session variables can be created on the fly, used whenever, and do not require the developer to dispose of them explicitly, the overuse of Session variables can lead to very unreadable and unmaintainable code.

En..

*Session variables take you one step closer to VB programming in the sense that you can grab one without initializing the variable, use it whenever you want to, and not have to worry about releasing it when you've finished using it. And WHO wants to go there? Not me.


----------
http://www.4guysfromrolla.com/webtech/faq/Advanced/faq4.shtml

Verwijderd

Op donderdag 09 mei 2002 22:12 schreef bojo het volgende:
Wat ze daar draaien :
- Windows 2000 (small business) Server
- MS SQL Server
- +- 10 gebruikers
Dan lijkt me het gebruik van SessieVariabelen prima ter verificatie (en het meeslepen van de verificatie naar alle pagina's van de appl). Dus in een tabelletje de user zetten (ID, naam, pwd) en dan de ID in een SessieVariable zetten. Die meenemen in je header zoals

<% ' controle of er een UserID in de sessie zit

If Session("User_ID") = "" then
response.redirect ("loginpagina.asp")
End if

%>

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 20:30

pistole

Frutter

Op vrijdag 10 mei 2002 08:45 schreef brinkmanjr het volgende:
Van 4guys..

* Session variables and cookies are synonymous. So if a user has set his browser not to accept any cookies, your Session variables won't work for that particular web surfer!

** Probeer maar eens een sessie-var te maken als de client cookies heeft uitstaan..


En...

* Since Session variables can be created on the fly, used whenever, and do not require the developer to dispose of them explicitly, the overuse of Session variables can lead to very unreadable and unmaintainable code.

En..

*Session variables take you one step closer to VB programming in the sense that you can grab one without initializing the variable, use it whenever you want to, and not have to worry about releasing it when you've finished using it. And WHO wants to go there? Not me.


----------
http://www.4guysfromrolla.com/webtech/faq/Advanced/faq4.shtml
het koekje wordt alleen gebruikt om een sessie (lees: browser) te herkennen. De vars worden op de server in het geheugen gehouden (zet de 'prompt' optie mbt koekjes maar eens aan in je browser)

Ik frut, dus ik epibreer


Verwijderd

Op vrijdag 10 mei 2002 08:59 schreef pistole het volgende:

[..]

het koekje wordt alleen gebruikt om een sessie (lees: browser) te herkennen. De vars worden op de server in het geheugen gehouden (zet de 'prompt' optie mbt koekjes maar eens aan in je browser)
Maar je hebt die sessie dus wel nodig! [toch? (lichte twijfel)]

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 20:30

pistole

Frutter

je hebt die sessie nodig als je ... met sessies wilt werken (individuele gebruikers wilt herkennen zeg maar).
En om sessies te kunnen gebruiken moet je browser idd cookies accepteren.

Ik frut, dus ik epibreer


  • Sjnirk
  • Registratie: Maart 2001
  • Laatst online: 27-03-2025

Sjnirk

Hie vrieve

Ik heb een kleine intranet app gemaakt, ik vond het niet echt nodig om session vars te gebruiken, dus echt nodig VIND IK heb je ze niet

Bikkelen gebeurt pas na 2:00


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 10 mei 2002 08:45 schreef brinkmanjr het volgende:
** Probeer maar eens een sessie-var te maken als de client cookies heeft uitstaan..
Ga maar naar de site van Sun, dat is een van de grotere voorbeelden die dat gebruikt.
Met php is het ook een optie die je in kan stellen...

Het is echt wel mogelijk hoor ;)
Dat het met ASP niet 'wil' is wat anders.
* Since Session variables can be created on the fly, used whenever, and do not require the developer to dispose of them explicitly, the overuse of Session variables can lead to very unreadable and unmaintainable code.
Oftewel, kan, hoeft niet. Het is dus slecht programmeren als dat wel gebeurd.
*Session variables take you one step closer to VB programming in the sense that you can grab one without initializing the variable, use it whenever you want to, and not have to worry about releasing it when you've finished using it. And WHO wants to go there? Not me.
Zie voorgaande, als je dat lelijk doet. Leer dan programmeren, ga niet de 'omgeving' de schuld geven.

Mijn ervaring met sessies vloeit trouwens voort uit mijn ervaring met php. Dus ik roep nu dingen in zijn 'algemeniteit', niet zozeer asp specifiek. Sterker nog, daar heb ik geen ervaring mee ;)
Op vrijdag 10 mei 2002 09:02 schreef pistole het volgende:
En om sessies te kunnen gebruiken moet je browser idd cookies accepteren.
Het is de handigste manier, maar het moet niet...

Verwijderd

Op donderdag 09 mei 2002 20:06 schreef brinkmanjr het volgende:
...
2. De sessie variabele blijft meestal lang in het geheugen van de server staan (session.timeout is meestal zo'n 15-20 minuten). Niet erg leuk als je grote ADO collecties in een sessie hebt staan...
ACM reageerde hierop, maar ik wil het eigenlijk toch nog een keer benadrukken. Recordsets in een sessie zetten in zo ontzettend NOT done...

Verwijderd

Op vrijdag 10 mei 2002 09:50 schreef ACM het volgende:

[..]

Ga maar naar de site van Sun, dat is een van de grotere voorbeelden die dat gebruikt.
Met php is het ook een optie die je in kan stellen...

Het is echt wel mogelijk hoor ;)
Dat het met ASP niet 'wil' is wat anders.
[..]
Sun gebruikt toch helemaal geen ASP?? Kunnen we nu vaststellen dat het gebruik van sessie variabelen met ASP zonder dat de client cookies heeft ge-enabled NIET mogelijk is?

  • Sjnirk
  • Registratie: Maart 2001
  • Laatst online: 27-03-2025

Sjnirk

Hie vrieve

Op vrijdag 10 mei 2002 10:32 schreef brinkmanjr het volgende:


Sun gebruikt toch helemaal geen ASP?? Kunnen we nu vaststellen dat het gebruik van sessie variabelen met ASP zonder dat de client cookies heeft ge-enabled NIET mogelijk is?
Ja :)

Bikkelen gebeurt pas na 2:00


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 10 mei 2002 10:32 schreef brinkmanjr het volgende:
Sun gebruikt toch helemaal geen ASP?? Kunnen we nu vaststellen dat het gebruik van sessie variabelen met ASP zonder dat de client cookies heeft ge-enabled NIET mogelijk is?
Wmb niet ;)

Dan moet je maar een eigen sessionhandler schrijven :+
Maar voor de normale gebruiker is dat dan blijkbaar zo. Sun gebruikt (uiteraard ;) ) jsp/servlets

  • gotcha
  • Registratie: Oktober 1999
  • Laatst online: 29-07 18:20
met ASP kan is het idd niet mogelijk om sessies bij te houden zonder gebruik te maken van cookies (al dacht ik dat er wel isapi'-'s waren waarmee het toch kon).
asp.net kan het wel; de truuk die dan wordt toegepast is dat er in iedere URL die naar de client wordt gepasst een identifier wordt opgenomen. wanneer de gebruiker in zijn browser op zon aangepaste link klikt, komt dat ID weer terug op de server en die weet dan weer welke sessie hij moet gebruiken...

Verwijderd

de truuk die dan wordt toegepast is dat er in iedere URL die naar de client wordt gepasst een identifier wordt opgenomen. wanneer de gebruiker in zijn browser op zon aangepaste link klikt, komt dat ID weer terug op de server en die weet dan weer welke sessie hij moet gebruiken
Dat kan je nu ook zelf doen, maar dan de gegevens in een DB zetten. Als je bij elke link maar het ID opnieuw meegeeft.

Nadeel is dat je een best wel complexe manier ID's moet genereren omdat je anders met hand ff het ID verandert op 't url en ben je ineens iemand anders.

Verwijderd

Op vrijdag 10 mei 2002 23:33 schreef vanDee het volgende:

[..]

Dat kan je nu ook zelf doen, maar dan de gegevens in een DB zetten. Als je bij elke link maar het ID opnieuw meegeeft.

Nadeel is dat je een best wel complexe manier ID's moet genereren omdat je anders met hand ff het ID verandert op 't url en ben je ineens iemand anders.
ID's kan je toch vrij simpel 'complex' maken door een randomizer met stuk of 60 karakters erin? En die sla j dan op in je dbase.. en die stuur je iedere keer mee bij een pagina. Lijkt me trouwens nog best complex [denkdenk].. bij een formulier moet ie dan in een hiddenform komen? O nee, je zet m gewoon in de header.asp die je include bel elke pagina.. toch?

  • gotcha
  • Registratie: Oktober 1999
  • Laatst online: 29-07 18:20
ID's kan je toch vrij simpel 'complex' maken door een randomizer met stuk of 60 karakters erin? En die sla j dan op in je dbase.. en die stuur je iedere keer mee bij een pagina. Lijkt me trouwens nog best complex [denkdenk].. bij een formulier moet ie dan in een hiddenform komen? O nee, je zet m gewoon in de header.asp die je include bel elke pagina.. toch?
da's dan ook het mooie van de asp.NET oplossing; voor jou als developer verandert er niks omdat je gewoon op de normale manier het Session-object kan gebruiken. de webserver zorgt er zelf wel voor dat hij die ID's meegeeft etc. en de sessie identifier die dan zichtbaar is in de URL is natuurlijk een of ander random getal (want het sessieID <> het ID van een gebruiker in jouw systeem ofzo, dat staat juist in de sessie) dus door handmatig ff een nummertje te veranderen zou je alleen andermans sessie kunnen "kapen"... kans dat je dat ID raad lijkt me niet zo groot.

Verwijderd

Topicstarter
hoi,
ik heb mijn sessions werkend!! (was niet zo moeilijk)
Maar heb je ook zoiets als session_destroy() ofzo??

If moet ik gewoon de session variabele leeg maken?

  • gotcha
  • Registratie: Oktober 1999
  • Laatst online: 29-07 18:20
je kunt het de hele sessie opruimen met Session.Abandon
als je 1 waarde in het session object wil weggooien moet je idd gewoon de variable leegmaken
Pagina: 1