|
|
Veröffentlicht am 13.03.2018 21:28:21
|
|
|

Was bedeutet das Wort HttpContext in .ashx? Lass uns mit dir darüber reden.
HttpContext-Klasse: Kapselt alle HTTP-spezifischen Informationen zu einzelnen HTTP-Anfragen.
In jeder Phase der Ausführungskette der Verarbeitungsanfrage gibt es ein Objekt, das zwischen jedem Objekt übergeht, das heißt, die Kontextinformationen der Anfrage werden gespeichert, also das HttpContext-Objekt. Der HttpContext kapselt alle Informationen ASP.NET einer einzigen Anfrage, die verarbeitet werden soll. Wenn der Mechanismus zur Anforderungsbehandlung etabliert ist, wird die HttpContext-Klasse mit einem HttpRuntime-Objekt instanziiert, das dann verschiedene Phasen der Anfragelebenszeit durchläuft
Einführung in HttpContext: Speichern Sie Daten für einen einzelnen Nutzer, eine einzelne Anfrage, und die Daten werden nur für die Dauer dieser Anfrage gespeichert. wird bereitgestellt, um die Werte zu pflegen, die zwischen verschiedenen HttpModules und HttpHandlern übergeben werden müssen. Es kann auch verwendet werden, um die entsprechenden Informationen für eine vollständige Anfrage zu speichern.
Die Current-Eigenschaft ist ein nützliches statisches Element, das das aktuell angeforderte HttpContex-Objekt zurückgibt. Elemente sind Hashtabellen, die Daten zwischen den Modulen und den Handlern teilen, die an der Verarbeitung von Anfragen beteiligt sind. Jedes benutzerdefinierte Modul oder jeder Handler kann eigene Informationen zum angeforderten HttpContext-Objekt hinzufügen, und die in den Items gespeicherten Informationen werden schließlich von der Seite verwendet, aber diese Informationen können nur während der Ausführung der Anfrage abgerufen werden HttpContext Definition: Kapselt alle HTTP-spezifischen Informationen zu einzelnen HTTP-Anfragen.
Tatsächlich sind die HTTP-Anfrage und alle zurückgegebenen Informationen darin enthalten.
HttpContext stammt von System.Runtime.Remoting.Messaging.CallContext.HostContext. Diese HostContext-Definition besteht darin, den Host-Kontext zu erhalten oder festzulegen, der mit dem aktuellen Thread verknüpft ist (sodass der HttpContext nur im aktuellen Thread der aktuellen Anfrage verwendet werden kann). )
HttpContext wird tatsächlich in der Eigenschaft CallContext.HostContext gespeichertWenn du noch neugierig auf HostContext bist, kannst du es selbst mit Reflector.exe sehen, ich möchte keinen weiteren Code posten, weil einige Typen und Methoden nicht öffentlich sind.
HttpContext.Current.Items können beim Datenaustausch zwischen HttpModule und HTTPHandler verwendet werden, da jede Benutzeranfrage durch die HTTP-Laufzeitpipeline HttpModule, HTTPHandler, läuft. Wenn Sie die IHttpMoudle-Methode implementieren, um Informationen über HttpMoudle an die Benutzeranfrage weiterzugeben. Sie können HttpContext.Current.Items verwenden, um Daten auf verschiedenen Anfrageseiten und in verschiedenen HttpModules zu übertragen, aber sobald die Anfrage endet und die Daten veröffentlicht sind, gehen die Daten in dieser Sammlung von selbst verloren.
Zum Beispiel wollen wir jedes Mal, wenn wir eine Anfrage stellen, dasselbe DbContext-Kontextobjekt in ef verwenden, und der Code ist wie folgt:
|
Vorhergehend:Bestimmen Sie, ob der Besucher ein Mobiltelefon oder ein Computer ist, basierend auf dem UserAgentNächster:Asp.Net IHttpHandler vorgestellt
|