Heim >Backend-Entwicklung >C++ >Wie greife ich auf den aktuellen HttpContext in ASP.NET Core zu?
Zugriff auf HttpContext in ASP.NET Core-Anwendungen
Im Gegensatz zu seinem Vorgänger ASP.NET MVC, der die praktische HttpContext.Current
-Eigenschaft bot, erfordert der Zugriff auf die aktuelle HttpContext
in ASP.NET Core einen anderen Ansatz. Die direkte statische Zugriffsmethode ist nicht mehr verfügbar.
Die Lösung: IHttpContextAccessor
ASP.NET Core stellt als Lösung die IHttpContextAccessor
-Schnittstelle bereit. Durch die Integration dieses Dienstes in Ihre Klassen erhalten Sie Zugriff auf die aktuelle HttpContext
unabhängig vom Ausführungskontext.
Anschauliches Beispiel:
Untersuchen wir eine Komponente, die Sitzungsdaten benötigt:
<code class="language-csharp">public class MyComponent : IMyComponent { private readonly IHttpContextAccessor _httpContextAccessor; public MyComponent(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } public string RetrieveSessionData() { return _httpContextAccessor.HttpContext.Session.GetString("KEY"); } }</code>
Dieser MyComponent
ruft mithilfe des injizierten IHttpContextAccessor
Daten aus der Sitzung des Benutzers ab. Auf HttpContext
wird zugegriffen und die Eigenschaft Session
wird verwendet, um den mit dem Schlüssel „KEY“ verknüpften Wert abzurufen.
Wichtige Überlegungen:
IHttpContextAccessor
ist eine Abhängigkeit, die in den Konstruktor Ihrer Komponente eingefügt werden muss.HttpContextAccessor
Erweiterungsmethoden für einen vereinfachten Zugriff auf Benutzeransprüche, Cookies und den Anfragetext.HttpContext
innerhalb einer statischen Methode erfordert ein „StaticHttpContext“-Muster. Dazu gehört die Initialisierung von HttpContextAccessor
mit dem globalen IServiceProvider
. Aufgrund möglicher Parallelitätsprobleme sollte dieser Ansatz jedoch sparsam eingesetzt werden.Das obige ist der detaillierte Inhalt vonWie greife ich auf den aktuellen HttpContext in ASP.NET Core zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!