Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 17081|Válasz: 2

[ASP.NET] HttpContext.Current.Items

[Linket másol]
Közzétéve 2018. 02. 11. 10:42:10 | | | |

A HTTP egy állapot nélküli protokoll. Minden kérés független, és a végrehajtása, valamint az eredményei nem kapcsolódnak közvetlenül az előző kéréshez és a következő kéréshez, és közvetlenül nem befolyásolja az előző kérésre adott válasz, és nem befolyásolja közvetlenül a következő kérésre adott választ.

Valójában rendszerünk gyakran támogatja a felhasználóknak, hogy ugyanazt az adatot (állapotot) több kéréssel megosszák a kliens böngésző és a szerver között, például a felhasználó bejelentkezési fiókadatait. Ezért ASP.NET számos változót biztosít az állapot kezelésére: alkalmazás állapot, session állapot, view állapot stb.

A HttpContext objektum csak egyetlen HTTP kérésre vonatkozik.Ennek az osztálynak a tulajdonságai közé tartoznak a Kérés objektumok, Válasz objektumok, Session objektumok stb. Ez az HttpContext osztály Items gyűjteménye, amely kulcsérték formájában tartalmaz hash tábla-objektumot.

Először nézzük meg a HttpContext.Current.Items célját, amely csak egyetlen felhasználói kérésre működik (a HttpContext.Current.Items érvényes egyetlen HTTPRequestre). Amikor ez a kérés befejeződik, az elemgyűjtemény elveszik, amikor a szerver adatait visszaküldik a böngészőnek. A Session objektum a felhasználó ülésére vonatkozik, vagyis több felhasználói kérésre reagál, és az információ elveszik a session lejárása után.

Mivel a HttpContext.Current.Items ilyen rövid életciklusú, milyen körülmények között használható? Itt megjegyezzük, hogy a HttpContext.Current.Items használható adatok megosztásához a HttpModule és a HTTPHandler között, mivel minden felhasználói kérés a HTTP futási idejű HttpModule (HTTPHandler) csővezetéken keresztül megy. Amikor az IHttpMoudle módszert implementálod, hogy az információt továbbítsd a felhasználói kérésnek a HttpMoudle-on keresztül. Használhatod a HttpContext.Current.Items fájlokat különböző kérésoldalakon és különböző HttpModulokon történő átvitelre, de amikor a kérés véget ér és az adatokat feltöltik, a gyűjteményben lévő adatok önmaguktól elvesznek. Ahogy az alábbi ábrán látható:




Ezen felül, amikor a szerver oldala ugrik (Server.Execute/Server.Transfer), használhatjuk a HttpContext.Current.Items csatornát az adatok átadására a két űrlap között.
Nyilvánvalóan, ha a Server.Transfer-et Response.Redirect-re változtatod, nem fogod tudni megkapni az adatokat a HttpContext.Current.Items új oldalon, mert az egy másik Http kérés. System.NullReferenceException: Az objektumhivatkozás nincs beállítva az objektum példányára.





Előző:20 perc az Ethereum hálózaton alapuló virtuális valuta kibocsátásához
Következő:Az intelligens terminálok felhasználási forgatókönyvein és jelentőségének gondolkodása
 Háziúr| Közzétéve 2023. 06. 30. 20:35:38 |
ASP.NET a különbség a ThreadStatic, a CallContext és a HttpContext között
https://www.itsvse.com/thread-10620-1-1.html
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com