Avatar billede nzc Nybegynder
01. august 2004 - 12:31 Der er 11 kommentarer og
2 løsninger

Application, Context eller ?

Hej!

Jeg vil gerne gemme et objekt som en slags global variabel for den bruger der er logged ind. Når man logger ind skal ens user gemmes som objekt et eller andet sted men hvor og hvordan synes jeg ikke lige jeg kan se... Der er 2 muligheder så vidt jeg kan se og det er:

Application["user"] = user;
Context.Items.Add("user", user);

Er Application ikke noget man bruger for selve applikationen, som feks en starttid eller noget?

Jeg har problemer med at bruge Context. Hvis jeg putter ting i Context i en codebehind som kalder

FormsAuthentication.RedirectFromLoginPage

så er min Context tom på den side der bliver redirected til?! Hva mon jeg gør forkert ?

I docs står der at man refererer til Context sådan her:
Context.Items("key")
men det er da
Context.Items["key"]
ikke ?

NZC
Avatar billede Slettet bruger
01. august 2004 - 12:34 #1
Generelt skal info anvendes globalt for applikationen brug Application
hvis det skal anvendes for brugeren i dennes bruger-session så gem det i Session.
Avatar billede nzc Nybegynder
01. august 2004 - 12:34 #2
Men hvad bruges Context så til ?!
Avatar billede Slettet bruger
01. august 2004 - 12:44 #3
Avatar billede snepnet Nybegynder
01. august 2004 - 13:19 #4
Application
Variable der skal være til rådighed for alle, i al den tid applikationen lever.

Cache
Svarer lidt til Application, men giver flere muligheder (objekt-forældelse, afhængighed mellem objekter og callback's).

Session
Variable som skal være til rådighed for en enkelt bruger igennem hele dennes session.

Context
Variable der skal være tilrådighed igennem et request - men ikke på tværs af requests (modsat session).
(Det er praktisk da man kan pakke sikringen af variablen ét sted - f.eks. begin_request, hvorefer der er "sikker adgang" til variablen alle andre steder i applikatoinen).
Avatar billede nzc Nybegynder
01. august 2004 - 14:04 #5
er det nødvendigt at angive session-id i querystring ligesom man ser på mange PHP sites?
Avatar billede snepnet Nybegynder
01. august 2004 - 14:10 #6
default gøres det pr. cookie, men du kan i din konfigurationsfil angive at du vil køre "cookie-less".
Avatar billede snepnet Nybegynder
01. august 2004 - 14:11 #7
(Det er for øvrigt ikke noget du behøver at gøre noget aktivt omkring i nogle af tilfældende)
Avatar billede nzc Nybegynder
01. august 2004 - 16:14 #8
er det muligt at bruge Session i klasser der ikke er codebehind?! Eller skal man til at sende det man har i Session med som parameter?

kryptos og snepnet i må gerne komme med et svar :)
Avatar billede snepnet Nybegynder
01. august 2004 - 16:49 #9
Du får lige et svar her - men jeg er en smule i tvivl om hvad du spurgte om her til sidst...

Hvis spørgsmålet er om du kan oprette klasser i dit projekt, der ikke er code-behind til en aspx-side, og fra dem tilgå session - svaret ja.

Du skulle kunne gå via HttpContext.Current.Session fra en hvilken som helst klasse.
(hvis klassen ikke er instantieret fra en web-applikation vil det selvfølgelig ikke gå godt).

Mvh
Avatar billede nzc Nybegynder
01. august 2004 - 17:10 #10
Du forstod mit sidste spørgsmål 100 % og svaret var 112 % iorden :)
Avatar billede snepnet Nybegynder
01. august 2004 - 17:47 #11
Super :o)
Avatar billede snepnet Nybegynder
08. august 2004 - 17:12 #12
kryptos... lægger du ikke et svar så spørgsmålet kan lukkes ?
Avatar billede Slettet bruger
09. august 2004 - 14:02 #13
et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester