See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 17081|Vastuse: 2

[ASP.NET] HttpContext.Current.Items

[Kopeeri link]
Postitatud 11.02.2018 10:42:10 | | | |

HTTP on olekuta protokoll. Iga päring on sõltumatu ning selle täitmine ja tulemused ei ole otseselt seotud eelmise ja järgneva päringuga, ning see ei ole otseselt mõjutatud eelmise päringu vastusest ega ka vastust järgmisele päringule.

Tegelikult võimaldab meie süsteem sageli kasutajatel jagada sama andmeid (olekut) kliendibrauseri ja serveri vahel mitme päringu puhul, näiteks kasutaja sisselogimiskonto andmeid. Seetõttu pakub ASP.NET palju muutujaid oleku haldamiseks: rakenduse olek, sessiooni seisund, vaate seisund jne.

HttpContext objekt on mõeldud ainult ühe http-päringu jaoks.Selle klassi omadused hõlmavad ka Request objekte, Response objekte, Session objekte jne. See on HttpContext klassi Items kogu, mis sisaldab räsi tabeli objekti võtme-väärtuse kujul.

Esmalt vaatame HttpContext.Current.Items eesmärki, mis töötab ainult ühe kasutaja päringu korral (HttpContext.Current.Items kehtib ühe HTTPRequesti puhul). Kui see päring on lõpetatud, kaob esemete kogu, kui serveri info saadetakse brauserisse tagasi. Sessiooni objekt on kasutaja sessiooni jaoks, st see tegutseb mitme kasutajapäringu peale ning info kaob pärast sessiooni lõppu.

Kuna HttpContext.Current.Itemsil on nii lühike elutsükkel, millistel tingimustel seda saab kasutada? Siin märgitakse, et HttpContext.Current.Items saab kasutada andmete jagamisel HttpModule'i ja HTTPHandleri vahel, kuna iga kasutajapäring läbib HTTP käitusaegse torujuhtme HttpModule, HTTPHandler. Kui rakendad IHttpMoudle meetodit, et edastada kasutaja päringule infot HttpMoudle'i kaudu. Saad kasutada HttpContext.Current.Items andmete edastamiseks erinevatesse päringulehtedesse ja erinevatesse HttpModule'itesse, kuid kui päring lõpeb ja andmed on postitatud, kaovad selle kogumiku andmed iseenesest. Nagu näidatud järgmises joonises:




Lisaks, kui serveri leht hüppab (Server.Execute/Server.Transfer), saame kasutada HttpContext.Current.Items andmete edastamiseks kahe vormi vahel.
Ilmselgelt, kui muudad Server.Transferi Response.Redirectiks, ei saa sa uuel lehel HttpContext.Current.Items andmeid kätte, sest tegemist on erineva Http-päringuga. System.NullReferenceException: Objekti viide ei ole objekti eksemplarile seatud.





Eelmine:20 minutit virtuaalvaluuta väljastamiseks Ethereumi võrgu alusel
Järgmine:Mõtlemine intelligentsete terminalide kasutusstsenaariumitele ja nende tähtsusele
 Üürileandja| Postitatud 30.06.2023 20:35:38 |
ASP.NET erinevus ThreadStaticul, CallContextil ja HttpContextil
https://www.itsvse.com/thread-10620-1-1.html
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com