Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 17081|Odpowiedź: 2

[ASP.NET] HttpContext.Current.Items

[Skopiuj link]
Opublikowano 11.02.2018 10:42:10 | | | |

HTTP to protokół bezstanowy. Każde żądanie jest niezależne, a jego wykonanie i wyniki nie są bezpośrednio powiązane z poprzednim żądaniem i kolejnym żądaniem, nie będą bezpośrednio wpływane przez odpowiedź na poprzednie żądanie, ani bezpośrednio na odpowiedź na kolejne żądanie.

W rzeczywistości nasz system często umożliwia użytkownikom udostępnianie tych samych danych (stanu) między przeglądarką klienta a serwerem w wielu żądaniach, takich jak dane konta logowania użytkownika. Dlatego ASP.NET udostępnia wiele zmiennych do zarządzania stanem: stan aplikacji, stan sesji, stan widoku itd.

Obiekt HttpContext służy tylko do pojedynczego żądania http.Właściwości tej klasy obejmują także obiekty Request, Response, Session itd. Jest to kolekcja Items klasy HttpContext, która zawiera obiekt tabeli skrótu w postaci klucz-wartość.

Najpierw przyjrzyjmy się celowi HttpContext.Current.Items, który działa tylko na jedno żądanie użytkownika (HttpContext.Current.Items ważne dla pojedynczego HTTPRequest). Po zakończeniu tego żądania kolekcja elementów zostanie utracona podczas przesyłania informacji o serwerze z powrotem do przeglądarki. Obiekt Session służy do sesji użytkownika, czyli działa na wiele żądań użytkownika, a informacje te są tracone po zakończeniu sesji.

Ponieważ HttpContext.Current.Items ma tak krótki cykl życia, w jakich okolicznościach można go używać? Zauważono tutaj, że HttpContext.Current.Items można używać podczas udostępniania danych między HttpModule a HTTPHandler, ponieważ każde żądanie użytkownika przechodzi przez pipeline wykonawczą HTTP HttpModule, HTTPHandler. Gdy implementujesz metodę IHttpMoudle, aby przekazać informacje użytkownikowi, zażądasz przez HttpMoudle. Możesz użyć HttpContext.Current.Items do przesyłania danych na różnych stronach żądań i różnych HttpModules, ale gdy żądanie się zakończy i dane zostaną opublikowane, dane w tej kolekcji same zostaną utracone. Jak pokazano na poniższym rysunku:




Dodatkowo, gdy strona serwera przeskakuje (Server.Execute/Server.Transfer), możemy użyć HttpContext.Current.Items do przesyłania danych między dwoma formularzami.
Oczywiście, jeśli zmienisz Server.Transfer na Response.Redirect, nie będziesz mógł pobrać danych w HttpContext.Current.Items na nowej stronie, ponieważ jest to inne żądanie HTTP. System.NullReferenceException: Referencja obiektu nie jest ustawiona na instancję obiektu.





Poprzedni:20 minut na emisję wirtualnej waluty opartej na sieci Ethereum
Następny:Rozważam scenariusze użycia i znaczenie inteligentnych terminali
 Ziemianin| Opublikowano 30.06.2023 20:35:38 |
ASP.NET różnica między ThreadStatic, CallContext i HttpContext
https://www.itsvse.com/thread-10620-1-1.html
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com