Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 17081|Odgovoriti: 2

[ASP.NET] HttpContext.Current.Items

[Kopiraj povezavo]
Objavljeno na 11. 02. 2018 10:42:10 | | | |

HTTP je protokol brez stanja. Vsaka zahteva je neodvisna, njena izvedba in rezultati pa niso neposredno povezani s prejšnjo in naslednjo zahtevo, prav tako ne bodo neposredno prizadeti z odgovorom na prejšnjo zahtevo, prav tako ne neposredno na odgovor na naslednjo zahtevo.

Pravzaprav naš sistem pogosto podpira uporabnike, da med brskalnikom odjemalca in strežnikom delijo iste podatke (stanje) za več zahtev, kot so podatki uporabniškega prijavnega računa. Zato ASP.NET zagotavlja veliko spremenljivk za upravljanje stanja: stanje aplikacije, stanje seje, stanje ogleda itd.

Objekt HttpContext je namenjen le eni HTTP zahtevi.Lastnosti tega razreda vključujejo tudi objekte Request, Response, Session objekte itd. To je zbirka Items razreda HttpContext, ki vsebuje objekt zgoščevalne tabele v obliki ključ-vrednost.

Najprej si poglejmo namen HttpContext.Current.Items, ki deluje le na eno uporabniško zahtevo (HttpContext.Current.Items velja za eno HTTPRequest). Ko je ta zahteva izpolnjena, bo zbirka elementov izgubljena, ko se informacije o strežniku pošljejo nazaj v brskalnik. Objekt Seje je za uporabnikovo sejo, torej deluje na več uporabniških zahtev, informacije pa se izgubijo po poteku seje.

Ker ima HttpContext.Current.Items tako kratek življenjski cikel, pod kakšnimi pogoji ga je mogoče uporabiti? Tukaj je omenjeno, da se HttpContext.Current.Items lahko uporablja pri deljenju podatkov med HttpModule in HTTPHandler, saj vsaka uporabniška zahteva poteka skozi HTTP runtime pipeline HttpModule, HTTPHandler. Ko implementirate metodo IHttpMoudle za posredovanje informacij uporabniški zahtevi preko HttpMoudle. Uporabite lahko HttpContext.Current.Items za prenos podatkov na različnih straneh z zahtevami in različnih HttpModules, vendar ko zahteva konča in so podatki objavljeni, se podatki v tej zbirki sami izgubijo. Kot je prikazano na naslednji sliki:




Poleg tega, ko strežniška stran skoči (Server.Execute/Server.Transfer), lahko uporabimo HttpContext.Current.Items za prenos podatkov med obema obrazcema.
Seveda, če spremenite Server.Transfer v Response.Redirect, podatkov v HttpContext.Current.Items na novi strani ne boste mogli dobiti, ker gre za drugačno HTTP zahtevo. System.NullReferenceException: Referenca objekta ni nastavljena na instanco objekta.





Prejšnji:20 minut za izdajo virtualne valute na podlagi omrežja Ethereum
Naslednji:Razmišljanje o scenarijih uporabe in pomenu inteligentnih terminalov
 Najemodajalec| Objavljeno na 30. 06. 2023 20:35:38 |
ASP.NET razliko med ThreadStatic, CallContext in HttpContext
https://www.itsvse.com/thread-10620-1-1.html
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com