Heim > Backend-Entwicklung > C++ > Wie greife ich in ASP.NET Core Controller-Konstruktoren auf den aktuellen Benutzer zu?

Wie greife ich in ASP.NET Core Controller-Konstruktoren auf den aktuellen Benutzer zu?

Susan Sarandon
Freigeben: 2025-01-13 10:52:42
Original
516 Leute haben es durchsucht

How to Access the Current User in ASP.NET Core Controller Constructors?

Abrufen des aktuellen Benutzers in ASP.NET Core-Controllern

Der Zugriff auf den aktuellen Benutzer im Konstruktor eines ASP.NET Core-Controllers kann aufgrund des potenziellen null-Werts von HttpContext eine Herausforderung darstellen. Dieser Artikel bietet effektive Lösungen zum effizienten Abrufen von Benutzerinformationen ohne wiederholte Anrufe.

Der übliche Ansatz, HttpContext.User.GetUserId() zu verwenden, schlägt im Konstruktor fehl. Um den Abruf von Benutzerdaten zu optimieren, wird eine zentralisierte Methode bevorzugt.

So beheben Sie dieses Problem:

  1. Innerhalb von Controller-Aktionen: Verwenden Sie HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value, um die Benutzer-ID zu erhalten.

  2. Innerhalb des Konstruktors (Nutzung von IHttpContextAccessor):

    • Fügen Sie IHttpContextAccessor in Ihr Projekt ein und registrieren Sie es in ConfigureServices.
    • Fügen Sie IHttpContextAccessor in den Konstruktor Ihres Controllers ein und greifen Sie wie folgt auf die Benutzer-ID zu:
<code class="language-csharp">public Controller(IHttpContextAccessor httpContextAccessor)
{
    var userId = httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
}</code>
Nach dem Login kopieren

Beachten Sie die Hinzufügung des Null-Bedingungsoperators (?.), um potenzielle Nullwerte ordnungsgemäß zu verarbeiten. Dies verhindert Ausnahmen, wenn User oder FindFirst null zurückgibt.

Das obige ist der detaillierte Inhalt vonWie greife ich in ASP.NET Core Controller-Konstruktoren auf den aktuellen Benutzer zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage