Cosa significa la parola HttpContext in .ashx? Parliamone con te
Classe HttpContext: Racchiude tutte le informazioni specifiche HTTP sulle singole richieste HTTP.
In ogni fase della catena di esecuzione delle richieste di elaborazione, c'è un oggetto che passa tra ciascun oggetto, cioè vengono memorizzate le informazioni di contesto della richiesta, che è l'oggetto HttpContext. L'HttpContext racchiude tutte le informazioni ASP.NET una singola richiesta da elaborare. Quando il meccanismo di gestione delle richieste è stato stabilito, la classe HttpContext viene istanziata con un oggetto HttpRuntime, che poi attraversa varie fasi della vita della richiesta
Introduzione a HttpContext: Mantenere i dati per un singolo utente, una singola richiesta, e i dati vengono mantenuti solo per la durata di quella richiesta. è fornito per mantenere i valori che devono essere passati tra diversi HttpModules e HttpHandler. Può anche essere utilizzato per mantenere le informazioni appropriate per una richiesta completa.
La proprietà Current è un utile membro statico che restituisce l'oggetto HttpContex attualmente richiesto. Gli elementi sono tabelle hash che condividono dati tra i moduli e i gestori coinvolti nell'elaborazione delle richieste. Ogni modulo personalizzato o handler è in grado di aggiungere le proprie informazioni all'oggetto HttpContext richiesto, e le informazioni memorizzate negli Items vengono infine utilizzate dalla pagina, ma queste informazioni possono essere accessibili solo durante l'esecuzione della richiesta HttpContext Definizione: Racchiude tutte le informazioni specifiche HTTP relative alle singole richieste HTTP.
In effetti, la richiesta Http e tutte le informazioni restituite sono incluse.
HttpContext deriva da System.Runtime.Remoting.Messaging.CallContext.HostContext. Questa definizione di HostContext serve a ottenere o impostare il contesto host associato al thread corrente (quindi l'HttpContext può essere usato solo nel thread della richiesta corrente. )
HttpContext è in realtà memorizzato nella proprietà CallContext.HostContextSe sei ancora curioso di HostContext, puoi vederlo tu stesso con Reflector.exe, non voglio pubblicare altro codice, perché alcuni tipi e metodi non sono pubblici.
HttpContext.Current.Items può essere utilizzato quando si condividono dati tra HttpModule e HTTPHandler, perché ogni richiesta utente passa attraverso la pipeline di esecuzione HTTP HttpModule, HTTPHandler. Quando implementi il metodo IHttpMoudle per passare informazioni alla richiesta dell'utente tramite HttpMoudle. Puoi usare HttpContext.Current.Items per trasferire dati in diverse pagine di richiesta e diversi HttpModule, ma una volta terminata la richiesta e i dati pubblicati, i dati in questa raccolta andranno persi da soli.
Ad esempio, ogni volta che facciamo una richiesta, vogliamo usare lo stesso oggetto di contesto DbContext in ef, e il codice è il seguente:
|