Just nu i M3-nätverket
Gå till innehåll

Problem med SessionID


Johan Knape

Rekommendera Poster

Hej!

 

Jag har förstått att för att få bra säkerhet när

det gäller sessioner bör man använda sessionsid i querystringen för att på så sätt alltid få fram

korrekt person.

 

Vad jag däremot inte riktigt förstått är hur detta går till.

 

Jag får ett SessionsID automatiskt när jag loggar

in sedan kan jag spara detta som en variabel och

skicka till nästa sida i en querystring.

 

Skriver jag sedan SessionID = request.Querystring("SessionID") och då vet datorn direkt vem jag är eller måste detta göras på ett mera komplicerat sätt?

 

Läst något om att man måste lägga in allt detta i databasen och hämta det ut därifrån. Stämmer detta?

 

Tänkte skapa en enkel webshop och då lägga in id:t från tabellen med beställda varor i sessionen så att personen kan plocka åt sig alla varor innan han/hon loggar in och måste då först logga in när de vill beställa.

 

 

Uppskattar alla förklaringar.

 

/Johan

Länk till kommentar
Dela på andra webbplatser

Jo, att alla användare får ett unikt sessionsid är hela poängen.

 

Om du sätter <%Session("user")="anvandare"%> där variabeln "anvandare" hämtas från en databas så kommer alla olika användare ha unika värden när du hämtar innehållet i Session("user").

 

Ex: när användaren loggar in på din webshop anger hon user & pass.

På denna unika rad i databasen har du sedan tidigare ett unikt kundnummer som du tilldelar dennes session("user").

 

Användaren kommer då ha detta id till hon stänger webläsaren, byter sida eller snubblar på kommandot <%Session.abandon%> (som du naturligtvis använder för att logga ut en användare).

 

Det blev lite rörigt förklarat kanske... ;)

 

Mvh

-Cat

_________________________________________________

"Varför vara besvärlig

när man med lite fantasi kan bli helt omöjlig."

okänd

 

Länk till kommentar
Dela på andra webbplatser

Jo det vet jag men Session.SessionID är en speciell variabel som man inte skall kunna ändra på om jag förstått det hela.

 

Ibland förlorar sidorna sessionen har jag hört, har aldrig varit med om det själv men vill förhindra chansen till det.

 

Och då har jag hört att man skall köra Session.SessionID i en request.Querystring för att sessionen skall komma ihåg en varje gång man byter sida.

 

MEN hur gör jag när jag kommer till den nya sida?

 

Skriver man bara

sessionid = request.Querystring("sessionID")
Session.SessionID = sessionid

?????

 

/Johan

 

Länk till kommentar
Dela på andra webbplatser

I klassiska ASP finns det inget sätt att låta sessioner gå över querystring.

 

Man kan ju naturligtvis göra en helt egen sessions hantering, det blir dock ofta jobbigt att hantera då alla länkar måste skicka med sessions id:n.

 

Sen finns det lösningar med isapi filter man kan installera som tex CookieMunger som sköter det hela automatiskt men det finns inget i klassiska ASP som frångår användningen av cookies för sessions hanteringen, tyvärr.

 

I .NET finns det fler varianter, har dock inte hunnit sätta mig in i hur det funkar ännu.

 

 

Länk till kommentar
Dela på andra webbplatser

Du kan inte påverkar sessionID själv eftersom det är en readonly parameter, iallfall så har jag aldrig lyckas sätta ett annat session id.

 

Har aldirg varit med om att sessionerna går förlorade mellan sidor, de som har fått det felet måste vara personer som inte har cookies aktiverade i sin läsare..

 

Om du inte litar på MS sessionshantering så får du göra en egen. Inte speciellt svårt.

 

1. skapa ett unikt id (antingen med GUID = bästa, eller utifrån ip-adress och tiden.

2. sedan skapar du en tabell i databasen är du har 3 fält

ID|Name|Value

där du lagra id:et samt ditt "sessionsNamn" och "sessionsValue"

3. Sedan måste du i varje länk skicka med ditt unika id till varje sida och där se om man behöver hämta data från databasen.

 

Fördelar:

- Användaren behöver inte ha cookiessupport.

- Fungerar över webfarms

- Tar inte onödigt med minne för lagring av sessionsvariabler

 

Nackdelar:

- Långsammare då man måste ner i databasen varje gång som du vill hämta något

- Inte 100% stabilt, då besökaren kan ändra i sin url och plocka bort id, vilket gör att besökaren har tappat sitt unika id. (fast då får man nästan skylla sig själv, samt att samma sak händer om en cookies tasbort)

 

- M

-----------------------------------------------------

ju mer jag lär mig ju mer inser jag så lite jag kan

 

[inlägget ändrat 2002-10-11 09:06:48 av Magnus Gladh]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...