Heim > Backend-Entwicklung > C++ > Wie kann ich den aktuellen Benutzer in ASP.NET Core-Controllern effizient abrufen?

Wie kann ich den aktuellen Benutzer in ASP.NET Core-Controllern effizient abrufen?

Barbara Streisand
Freigeben: 2025-01-13 11:25:42
Original
945 Leute haben es durchsucht

How Can I Efficiently Retrieve the Current User in ASP.NET Core Controllers?

Effizienter Benutzerzugriff in ASP.NET Core-Controllern

Der Zugriff auf Benutzerdaten (wie E-Mail-Adressen) ist für personalisierte Anwendungsfunktionen unerlässlich. Der direkte Zugriff auf den Benutzer im Konstruktor eines ASP.NET Core-Controllers führt jedoch häufig zu Problemen, da HttpContext möglicherweise null ist. Dies erfordert normalerweise den redundanten Abruf von Benutzerinformationen bei jeder Aktionsmethode, was sich auf die Effizienz auswirkt.

Eine optimierte Lösung umfasst die Verwendung von Folgendem:

<code class="language-csharp">User.FindFirst(ClaimTypes.NameIdentifier).Value</code>
Nach dem Login kopieren

Dadurch wird die eindeutige Kennung des Benutzers präzise abgerufen, ein Schlüssel für den Zugriff auf weitere Benutzerdaten wie z. B. seine E-Mail-Adresse.

Zugriff auf den Benutzer im Konstruktor

Für Situationen, die Benutzerzugriff innerhalb des Konstruktors des Controllers erfordern, wird dieser Ansatz empfohlen:

<code class="language-csharp">public Controller(IHttpContextAccessor httpContextAccessor)
{
    var userId = httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
}</code>
Nach dem Login kopieren

Dies basiert auf der IHttpContextAccessor-Abhängigkeit, die in der ConfigureServices-Methode Ihrer Anwendung registriert werden muss (innerhalb von Startup.cs oder Program.cs):

<code class="language-csharp">public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpContextAccessor();
    // ... other service registrations
}</code>
Nach dem Login kopieren

Dieses Setup gewährleistet einen zuverlässigen Zugriff auf Benutzerinformationen, ohne die Controller-Leistung zu beeinträchtigen. Beachten Sie die Verwendung des Null-Bedingungsoperators (?.), um potenzielle Nullwerte ordnungsgemäß zu verarbeiten.

Das obige ist der detaillierte Inhalt vonWie kann ich den aktuellen Benutzer in ASP.NET Core-Controllern effizient abrufen?. 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