This article has been localized into German by the community.
Einleitung
In alten Zeiten, in denen PHP und ASP die Welt beherrschten, passierte der Umgang mit Dingen wie der Abfragezeichenfolge die ganze Zeit! Sie würden ständig Eingaben von der URL durch die Abfragezeichenfolge nehmen und darauf basierenden Inhalt zurückgeben. Ein Großteil dieser Arbeit wurde vom ASP.NET MVC-Framework abstrahiert. Beispielsweise werden Parameter aus der Abfragezeichenfolge automatisch in typsichere Parameter für Ihre Controller-Aktionen umgewandelt, und über FORMs zurückgesendete Informationen können automatisch in Modellobjekte umgewandelt werden.
Es ist jedoch wahrscheinlich, dass Sie bald auf Situationen stoßen werden, in denen Sie etwas tiefer gehen und näher an der HTTP-Pipeline sein müssen. Dies ist immer dann relevant, wenn Sie direkt auf die Abfragezeichenfolge oder die FORMULAR-Informationen zugreifen möchten, aber auch, wenn Sie sich mit Dingen wie Cookies/Sitzungen und Antwort-Headern befassen müssen. Mit ASP.NET MVC können Sie einfach auf alle HTTP-Funktionen zugreifen, indem Sie sie in der HttpContext-Klasse zusammenfassen.
Zugriff auf den HttpContext
Auf die HttpContext-Klasse kann von allen Controllern aus zugegriffen werden. Der Einfachheit halber können Sie über die Eigenschaft HttpContext auf HttpContext zugreifen, die sich auf Ihren Controllern befindet. Aus Gründen der Benutzerfreundlichkeit werden einige der in der HttpContext-Klasse gefundenen Eigenschaften auch als Eigenschaften im Controller angezeigt, z.B.: die Request -Eigenschaft.
Es wird im Allgemeinen nicht empfohlen, von einem anderen Ort als in Ihren Controllern auf den HTTP-Kontext zuzugreifen. In früheren Versionen des ASP.NET MVC-Frameworks war die Verwendung der HttpContext.Current-Eigenschaft einfach, wurde jedoch in ASP.NET Core entfernt, da einige der Kernprinzipien der MVC-Architektur verletzt wurden. Wenn Sie dies jedoch wirklich tun müssen, gibt es verschiedene Möglichkeiten, um älteren Code zu unterstützen - ich schlage vor, dass Sie StackOverflow-Thread für weitere Informationen aufrufen.
HttpContext Struktur
Es gibt eine Vielzahl von Eigenschaften und Methoden, die sich auf die HTTP-Pipeline beziehen. Aus praktischen Gründen wurden die Mitglieder der HttpContext-Klasse in mehrere Objekte aufgeteilt, auf die Sie als Eigenschaften der Klasse zugreifen können. Hier ist eine Liste von denen, die Sie wahrscheinlich am häufigsten verwenden:
- HttpContext.Request - alle Mitglieder, die sich auf die aktuelle Anfrage beziehen, z.B.: die QueryString, Formulare und so weiter.
- HttpContext.Response - Alle Mitglieder, die sich auf die zu übermittelnde Antwort beziehen, z.B.: Cookies und Antwortheader
- HttpContext.Session - alle Mitglieder, die sich mit der Sitzung befassen (wird im Allgemeinen verwendet, um Daten zwischen Anforderungen beizubehalten)
- HttpContext.User - alle Mitglieder, die mit einem (potenziell) authentifizierten Benutzer zu tun haben
In den kommenden Artikeln werden wir uns eingehender mit jedem dieser Objekte befassen und die wichtigsten darin enthaltenen Funktionen erläutern.
Zusammenfassung
Mit der HttpContext-Klasse können Sie sich der HTTP-Pipeline viel näher bringen und sich selbst mit weniger wichtigen Dingen befassen, z.B.: die QueryString und Cookies.