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

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

Susan Sarandon
Susan SarandonOriginal
2025-01-13 11:42:44128Durchsuche

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

Abrufen des aktuellen Benutzers in ASP.NET Core-Controllern

Der Zugriff auf Benutzerinformationen innerhalb von ASP.NET Core-Controllern erfordert sorgfältige Überlegungen, um Nullreferenzausnahmen zu vermeiden. Die direkte Verwendung von HttpContext im Konstruktor eines Controllers ist fehleranfällig.

Zugriff auf Benutzerdaten innerhalb einer Aktionsmethode

Eine zuverlässige Methode besteht darin, Benutzerdetails innerhalb einer Aktionsmethode abzurufen und sie in ViewData zu speichern. In diesem Beispiel wird davon ausgegangen, dass in der Anfrage ein Benutzer-Cookie vorhanden ist:

<code class="language-csharp">public ActionResult Index()
{
    string userId = HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
    ViewData["UserId"] = userId;
    return View();
}</code>

Greifen Sie anschließend über ViewData["UserId"] in jeder mit der Aktion Index verknüpften Ansicht auf die Benutzer-ID zu. Der nullbedingte Operator (?.) verhindert Ausnahmen, wenn FindFirst null zurückgibt.

Zugriff auf Benutzerdaten im Controller-Konstruktor

Für den konstruktorbasierten Zugriff nutzen Sie die IHttpContextAccessor-Schnittstelle:

<code class="language-csharp">public Controller(IHttpContextAccessor httpContextAccessor)
{
    string userId = httpContextAccessor.HttpContext?.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
    // ... further processing of userId ...
}</code>

Stellen Sie sicher, dass IHttpContextAccessor in Ihrer Dienstkonfiguration registriert ist:

<code class="language-csharp">public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpContextAccessor();
}</code>

Diese Techniken bieten robuste Methoden für den Zugriff auf aktuelle Benutzerdaten in ASP.NET Core und minimieren so das Risiko von Laufzeitfehlern. Denken Sie daran, potenzielle Nullwerte mithilfe von Null-Bedingungsoperatoren angemessen zu behandeln.

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

Stellungnahme:
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