Maison > développement back-end > C++ > Comment accéder à l'utilisateur actuel dans les constructeurs de contrôleurs ASP.NET Core ?

Comment accéder à l'utilisateur actuel dans les constructeurs de contrôleurs ASP.NET Core ?

Susan Sarandon
Libérer: 2025-01-13 10:52:42
original
513 Les gens l'ont consulté

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

Récupération de l'utilisateur actuel dans les contrôleurs ASP.NET Core

Accéder à l'utilisateur actuel dans le constructeur d'un contrôleur ASP.NET Core peut présenter des défis en raison de la null valeur potentielle de HttpContext. Cet article propose des solutions efficaces pour récupérer efficacement les informations des utilisateurs sans appels répétés.

L'approche courante, utilisant HttpContext.User.GetUserId(), échoue au sein du constructeur. Pour optimiser la récupération des données utilisateurs, une méthode centralisée est privilégiée.

Voici comment résoudre ce problème :

  1. Dans les actions du contrôleur : Utilisez HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value pour obtenir l'ID utilisateur.

  2. Au sein du constructeur (en utilisant IHttpContextAccessor) :

    • Incluez IHttpContextAccessor dans votre projet et enregistrez-le dans ConfigureServices.
    • Injectez IHttpContextAccessor dans le constructeur de votre contrôleur et accédez à l'ID utilisateur comme ceci :
<code class="language-csharp">public Controller(IHttpContextAccessor httpContextAccessor)
{
    var userId = httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
}</code>
Copier après la connexion

Notez l'ajout de l'opérateur conditionnel nul (?.) pour gérer les valeurs nulles potentielles avec élégance. Cela évite les exceptions si User ou FindFirst renvoie null.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal