Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 17081|Svar: 2

[ASP.NET] HttpContext.Current.Items

[Kopiera länk]
Publicerad på 2018-02-11 10:42:10 | | | |

HTTP är ett tillståndslöst protokoll. Varje förfrågan är oberoende, och dess utförande och resultat är inte direkt relaterade till den föregående förfrågan och den efterföljande förfrågan, och den påverkas inte direkt av svaret på föregående förfrågan, och den påverkar inte heller svaret direkt på den efterföljande förfrågan.

Faktum är att vårt system ofta stödjer användare att dela samma data (tillstånd) mellan klientwebbläsaren och servern med flera förfrågningar, såsom användarens inloggningsuppgifter. Därför tillhandahåller ASP.NET många variabler för att hantera tillståndet: applikationsstatus, sessionstillstånd, vystatus, etc.

HttpContext-objektet är endast för en enda http-förfrågan.Egenskaperna för denna klass inkluderar även Request-objekt, Response-objekt, Session-objekt, etc. Detta är Items-samlingen av HttpContext-klassen, som innehåller ett hashtabellsobjekt i form av nyckelvärde.

Först, låt oss titta på syftet med HttpContext.Current.Items, som bara fungerar på en enda användarförfrågan (HttpContext.Current.Items giltiga för en enda HTTPRequest). När denna begäran är slutförd förloras objektsamlingen när serverinformationen skickas tillbaka till webbläsaren. Session-objektet är för användarens session, det vill säga det agerar på flera användarförfrågningar, och informationen går förlorad efter att sessionen upphört.

Eftersom HttpContext.Current.Items har en så kort livscykel, under vilka omständigheter kan den användas? Det noteras här att HttpContext.Current.Items kan användas vid datadelning mellan HttpModule och HTTPHandler, eftersom varje användarförfrågan går genom HTTP-runtime-pipelinen HttpModule, HTTPHandler. När du implementerar metoden IHttpMoudle för att skicka information till användarförfrågan via HttpMoudle. Du kan använda HttpContext.Current.Items för att överföra data på olika förfrågningssidor och olika HttpModules, men när förfrågan avslutas och datan publiceras förloras datan i denna samling av sig själv. Som visas i följande figur:




Dessutom, när serversidan hoppar (Server.Execute/Server.Transfer), kan vi använda HttpContext.Current.Items för att skicka data mellan de två formulären.
Uppenbarligen, om du ändrar Server.Transfer till Response.Redirect, kommer du inte kunna få data i HttpContext.Current.Items på den nya sidan eftersom det är en annan HTTP-förfrågan. System.NullReferenceException: Objektreferensen är inte satt till objektets instans.





Föregående:20 minuter för att ge ut virtuell valuta baserat på Ethereum-nätverket
Nästa:Att fundera på användningsscenarier och betydelsen av intelligenta terminaler
 Hyresvärd| Publicerad på 2023-06-30 20:35:38 |
ASP.NET skillnaden mellan ThreadStatic, CallContext och HttpContext
https://www.itsvse.com/thread-10620-1-1.html
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com