Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 17081|Răspunde: 2

[ASP.NET] httpContext.Current.Items

[Copiază linkul]
Postat pe 11.02.2018 10:42:10 | | | |

HTTP este un protocol fără stare. Fiecare cerere este independentă, iar execuția și rezultatele sale nu sunt direct legate de cererea anterioară și de cererea ulterioară, și nu vor fi afectate direct de răspunsul la cererea anterioară și nici nu vor afecta direct răspunsul la cererea ulterioară.

De fapt, sistemul nostru permite adesea utilizatorilor să partajeze aceleași date (stare) între browserul client și serverul mai multe cereri, cum ar fi informațiile contului de autentificare ale utilizatorului. Prin urmare, ASP.NET oferă multe variabile pentru gestionarea stării: starea aplicației, starea sesiunii, starea vizualizării etc.

Obiectul HttpContext este doar pentru o singură cerere http.Proprietățile acestei clase includ și obiecte Request, obiecte Response, obiecte Session etc. Aceasta este colecția Items a clasei HttpContext, care conține un obiect hash table sub forma de cheie-valoare.

Mai întâi, să analizăm scopul HttpContext.Current.Items, care funcționează doar la o singură cerere de utilizator (HttpContext.Current.Items valabil pentru un singur HTTPRequest). Când această cerere este finalizată, colectarea de obiecte se va pierde atunci când informațiile serverului sunt trimise înapoi către browser. Obiectul Session este pentru sesiunea utilizatorului, adică acționează pe baza mai multor cereri ale utilizatorilor, iar informația se pierde după expirarea sesiunii.

Deoarece HttpContext.Current.Items are un ciclu de viață atât de scurt, în ce circumstanțe poate fi folosit? Se menționează aici că HttpContext.Current.Items poate fi folosit atunci când se partajează date între HttpModule și HTTPHandler, deoarece fiecare cerere a utilizatorului trece prin pipeline-ul de execuție HTTP HttpModule, HTTPHandler. Când implementezi metoda IHttpMoudle pentru a transmite informații către cererea utilizatorului prin HttpMoudle. Poți folosi HttpContext.Current.Items pentru a transfera date din diferite pagini de cerere și diferite HttpModule, dar odată ce cererea se încheie și datele sunt postate, datele din această colecție se vor pierde singure. Așa cum se vede în figura următoare:




În plus, când pagina serverului sare (Server.Execute/Server.Transfer), putem folosi HttpContext.Current.Items pentru a transmite date între cele două formulare.
Evident, dacă schimbi Server.Transfer în Response.Redirect, nu vei putea obține datele din HttpContext.Current.Items în noua pagină deoarece este o cerere Http diferită. System.NullReferenceException: Referința obiectului nu este setată ca instanța obiectului.





Precedent:20 de minute pentru a emite monedă virtuală bazată pe rețeaua Ethereum
Următor:Gândirea la scenariile de utilizare și semnificația terminalelor inteligente
 Proprietarul| Postat pe 30.06.2023 20:35:38 |
ASP.NET diferența dintre ThreadStatic, CallContext și HttpContext
https://www.itsvse.com/thread-10620-1-1.html
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com