[asp] sessions zonder cookies

Pagina: 1
Acties:

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 22:40
Hoi,

heb wederom een probleem.
Heb een app. lopen die data tijdelijk in een session opslaat. Allemaal leuk en aardig, maar er zijn ook gebruikers die geen cookies (of de IE beveiliging staat op hoog) toelaten. Dan krijg je dus problemen met sessions.

Ik ben dus bezig om dit voor elkaar te krijgen door het in een url string te stoppen.

middels:
code:
1
page1.asp?session_id=<%=Session.SessionID%>

Als ik dus op page1.asp wil doen:
code:
1
Session.SessionID = request.querystring("session_id")

krijg ik dus een foutmelding (wrong arguments etc. etc.)

Kan ik die Session.SessionID niet setten oid?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

de sessionID kan je inderdaad niet setten maar is een var die je server aanmaakt.

Huur mij in als freelance SEO consultant!


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 22:40
hoe kan ik dit evt. oplossen dan?

Want ik moet sessions gebruiken. Maar die sessions worden herkend door SessionID.

Of beter gezegd: hoe kan je zoiets ondervangen? Zonder dat ie ook maar absoluut gaat checken bij de client op een cookie met Session.SessionID erin?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Je kan toch gewoon een variabele maken die je session.sessionID als waarde geeft?

dus:

dim mySessionID

mySessionID = session.sessionID;

dan:

page1.asp?session_id=<%=Session.mySessionID%>

en:

mySessionID = request.querystring("session_id")

Huur mij in als freelance SEO consultant!


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Op vrijdag 05 juli 2002 16:16 schreef CrashOne het volgende:
Je kan toch gewoon een variabele maken die je session.sessionID als waarde geeft?

dus:

dim mySessionID

mySessionID = session.sessionID;

dan:

page1.asp?session_id=<%=Session.mySessionID%>

en:

mySessionID = request.querystring("session_id")
ja maar dan ben je er nog niet want dan heb je je session nog niet. Maar ik denk dat je vast wel een sessie op kan vragen als je een sessieID hebt. in asp.net volgens mij wel want daar zitten alle sessies gewoon in een collectie

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Gebruik je een databaseje waar je per sessieid dingetjes bijhoudt.

  • elmer25
  • Registratie: Februari 2002
  • Laatst online: 01-12-2021

elmer25

ooit was ik 25

Op vrijdag 05 juli 2002 16:44 schreef rwb het volgende:

[..]
...asp.net volgens mij wel want daar zitten alle sessies gewoon in een collectie...
In ASP.NET heb je zelfs de optie om Cookie-less sessions te gebruiken. Al het "vuile werk" wordt dan door de server voor je gedaan. Cookie-less sessions stel je in in je web.config bestand.

  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Je kunt toch ook alle benodigde gegevens in je form zetten in een hidden veld.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Op vrijdag 05 juli 2002 16:57 schreef elmer25 het volgende:

[..]

In ASP.NET heb je zelfs de optie om Cookie-less sessions te gebruiken. Al het "vuile werk" wordt dan door de server voor je gedaan. Cookie-less sessions stel je in in je web.config bestand.
Ja dat weet ik maar ik probeerde hiermee duidelijk te maken dat het mischien op deze manier zelf mogelijk is om een cookie-less session state bij te houden in asp. Bij asp.net heb je nog veel meer opties met betrekking tot de opslag van cookies

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Als je nou in je "global.asa" het volgende zet:

Function Session_OnStart
Session.TimeOut=60
Set Session("UniqueId")=Session.SessionID
End Function

Dan kun je daarna toch in iedere pagina

Session("UniqueId")

aanroepen?

Weet je trouwens zeker dat het gebruik van het Session object iets te maken heeft met cookies? De data wordt toch helemaal opgeslagen op de server bij het aanmaken van sessie-variabelen?

Btw...je kunt ipv Request.QueryString("Blabla") ook gewoon Request("Blabla") doen...

  • gotcha
  • Registratie: Oktober 1999
  • Laatst online: 29-07 18:20
Weet je trouwens zeker dat het gebruik van het Session object iets te maken heeft met cookies? De data wordt toch helemaal opgeslagen op de server bij het aanmaken van sessie-variabelen?
lijkt me wel he...
idd, zodra je een sessie-variable aanmaakt wordt deze opgeslagen op de server. maar goed, dan is dat page-request afgehandeld en dan? bij de volgende page-request zal de server nog steeds moeten weten dat JIJ de client bent waarvoor die sessie-variabele geldt.
daarom zet ASP een cookie met daarin het sessie-ID. bij ieder request binnen de ASP-site leest IIS eerst de cookie in en aan de hand daarvan worden de juiste sessie-variabelen gebruikt.

als je dus perse zonder cookies moet werken, dan ontkom je er niet aan om een of ander sessie ID mee te nemen in de URL (of evt. via hidden form fiels, maar da's niet zo handig). je kunt dan ook geen gebruik maken van het Session-object, maar zult zelf iets moeten verzinnen voor opslag van variablen die de hele sessie in leven moeten blijven. je zou ze bijvoorbeeld in een database kunnen opslaan.
zoals al eerder vernoemd is het met ASP.NET mogelijk om *wel* sessies te gebruiken zonder cookies, en ook nog eens zonder extra werk. ASP.NET verherbouwt dan continue alle URL's (hij stopt er een extra SessieID in). hierdoor is hij in tegenstelling tot ouderwets ASP wel in staat om te "onthouden" over welke client het gaat
Pagina: 1