Heim >Backend-Entwicklung >C++ >Wie greife ich effizient auf aktuelle Benutzerinformationen in ASP.NET Core-Controllern mit Anforderungsbereich zu?
Das Abrufen authentifizierter Benutzerdetails, wie z. B. ihrer E-Mail-Adresse, ist in Webanwendungen von entscheidender Bedeutung. Um dies jedoch in ASP.NET Core-Controllern mit Anforderungsbereich effizient zu verwalten, ist sorgfältige Überlegung erforderlich.
Problem: Der direkte Zugriff auf HttpContext.User
innerhalb des Konstruktors eines Controllers führt häufig zu einem Nullwert HttpContext
, wodurch der Abruf von Benutzerinformationen verhindert wird. Das wiederholte Abrufen dieser Daten in jeder Aktionsmethode ist ineffizient.
Lösung: Nutzen Sie das [Authorize]
-Attribut und den IHttpContextAccessor
-Dienst.
Schritte zum Zugriff auf Benutzerinformationen:
IHttpContextAccessor
in Ihrem Startup.cs
(oder Program.cs
in .NET 6 und höher):<code class="language-csharp">public void ConfigureServices(IServiceCollection services) { services.AddHttpContextAccessor(); // ... other services }</code>
IHttpContextAccessor
in den Konstruktor Ihres Controllers:<code class="language-csharp">public class MyController : Controller { private readonly IHttpContextAccessor _httpContextAccessor; public MyController(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; //Retrieve and store user ID var userId = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value; //Further processing of userId as needed... } // ... your controller actions ... }</code>
Dieser Ansatz ermöglicht Ihnen den Zugriff auf die Identität des Benutzers im Konstruktor des Controllers. Sie können diese Informationen dann zur späteren Verwendung im Controller speichern, um die Effizienz zu verbessern und wiederholte Aufrufe von HttpContext.User
zu vermeiden. Die Verwendung des Null-Bedingungsoperators (?.
) behandelt Fälle, in denen der Anspruch möglicherweise nicht vorhanden ist.
Das obige ist der detaillierte Inhalt vonWie greife ich effizient auf aktuelle Benutzerinformationen in ASP.NET Core-Controllern mit Anforderungsbereich zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!