Tänkte bara fråga om sessioner är "farligt" minneskrävande för server.... Där du använder sessioner kan du använda cookies istället, det är mycket bättre än sessioner. Sessioner är servermördare! Tänk dock på att en cookie lagras hos användaren och kan läsas av denne. En sessionsvariabel kan bara läsas av dina asp-sidor. finns det inget annat sätt att lagra informationen utan att användaren skall kunna läsa den? lagra det i databas ger iofs lite overhead iom access mot db, men inte lika mycket som om du skulle fylla många sessionvariabler med data. Använd sessioner så lite som möjligt. Men om du ska kolla ett lösenord och sedan ha det i en session så är det ju bättre än cookies som andra användare av samma dator har möjlighet att läsa. > än cookies som andra användare av samma dator har möjlighet att läsa. Använd session-variabler med måtta men var inte rädd för att använda dem. Om man är restriktiv med dem så är de användbara. Nja!! Det var ju intressant. Är du helt säker på att varje tar upp 1024? Jag har inte hittat någon information om detta. > Den nackdel som finns med session är att du kan inte använda dem i "serverfarmar" alltså när man inte kan garantera att du alltid hämta informationen från samma server. Säkert inget som du stötter på! Sessioner...
och isåf hur minneskrävande....?
'Sv: Sessioner...
MVH Jesper TSv: Sessioner...
/johan/Sv: Sessioner...
Sv: Sessioner...
Sv: Sessioner...
Om du ska använda sessioner i samband med lösenordsskydd; här kommer en snutt kod:
' Tar emot lösenord från inmatningsfält
Session("password") = Request.Form("losenord")
' Kolla i fall om sessionen har samma värde som variabeln Losen
' som man kan ha i en inkluderingsfil
If Session("password") = Losen then
Response.Redirect "admin.asp"
Else Response.Write "du har ingen rättighet till denna sida!"
End If
' Sessionen i inkluderingsfilen kan skrivas så här:
<% Losen = "pass" %>Sv: Sessioner...
Det där gäller ju inte bra OS. En cookie är knuten till en användare och inte till en dator. man kan alltså inte läsa varandras cookies på samma dator.
Om man inte har någon lokal säkerhet på klienten så kan man naturligtvis läsa varndras cookies men då kan man också läsa allt annat hos de olika anävndarna så då spelar det ju ingen större roll!Sv: Sessioner...
Och man bör tänka på hur många samtidiga användare man har.
Om en session-variabel har 10 tecken i sig och varje tecken tar 2 byte så är det
20 byte/variabel.
Vi ger varje användare(session) 5 session-variabler.
20x5 = 100 bytes
Så har vi 200 samtidiga användare:
200x100 = 20 000 bytes = 20 Kb
Det blir inte så mycket eller hur? Om jag nu har räknat rätt...
Så har du en webserver som inte har runt 10 000 samtidiga användare så skulle jag inte bli för orolig.
Sedan är det viktigt att man dödar sessions oxå. Sätt inte en TimeOut på flera timmar utan håll dig till "verkliga" tider som du tror att användaren behöver.
Det finns andra sätt att trimma applikationer på, genom att använda sig av SP, Komponenter, MTS, stänga sina databaskopplingar etc..
Men som sagt, använd dem inte i överflöd.
//PutteSv: Sessioner...
Jag läste någonstans att en sessions-variable alltid tar 1024 bytes i anspråk, alltså 1KB. 1000 sessioner = 1 MB alltså 128000 sessioner för 300 spänn eller vad en 128MB modul kostar idag.
Vilket isig inte är speciellt avskräckande. Har hört alla möjliga hemskheter om sessioner. Till och med någon som föreslog att det skulle vara snabbare att lagra all information i databasen istället för sessionsvariabler... :)
Den nackdel som finns med session är att du kan inte använda dem i "serverfarmar" alltså när man inte kan garantera att du alltid hämta informationen från samma server. Säkert inget som du stötter på!
Samt att de kräver cookies. I ASP.NET finns dock en cookieslös varaiant där man skickar med ett ID hela tiden istället för att lagra det i en cookies.
Det finns lite overhead med sessioner också som du slipper om du kör med cookies istället, men har svårt att tänka mig att man märker någon större skillnad, finns nog andra ställen som man kan optimera prestandan på innan man dumpar sina sessioner.
I vissa lägen är session helt överlägsna cookies och det är när man lagra typ ett kundid för att se om någon är inloggad eller ej på en site. Om man lägger kundidet i en cookies och det är enkelt att gissa nästa kundid (typ med en sekvens) så är det väldigt enkelt att logga in som någon annan på siten, det slipper du med sessioner då man som klient inte kan ändra i sessionen om inte servern vill det.
- MagnusSv: Sessioner...
//PutteSv: Sessioner...
Det är avhjälpt i asp.net. Eftersom asp.net är gratis är det bara att ladda ner och installera så är problemet avhjälpt.