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

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

Susan Sarandon
Susan Sarandonoriginal
2025-01-13 11:42:44128parcourir

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

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

L'accès aux informations utilisateur dans les contrôleurs ASP.NET Core nécessite une attention particulière pour éviter les exceptions de référence nulle. L'utilisation directe de HttpContext dans le constructeur d'un contrôleur est sujette à des erreurs.

Accès aux données utilisateur dans une méthode d'action

Une méthode fiable consiste à récupérer les détails de l'utilisateur dans une méthode d'action et à les stocker dans ViewData. Cet exemple suppose qu'un cookie utilisateur existe dans la requête :

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

Ensuite, accédez à l'ID utilisateur via ViewData["UserId"] dans n'importe quelle vue associée à l'action Index. L'opérateur conditionnel nul (?.) empêche les exceptions si FindFirst renvoie null.

Accès aux données utilisateur dans le constructeur du contrôleur

Pour un accès basé sur le constructeur, utilisez l'interface IHttpContextAccessor :

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

Assurez-vous que IHttpContextAccessor est enregistré dans la configuration de votre service :

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

Ces techniques fournissent des méthodes robustes pour accéder aux données utilisateur actuelles dans ASP.NET Core, minimisant ainsi le risque d'erreurs d'exécution. N'oubliez pas de gérer les valeurs nulles potentielles de manière appropriée à l'aide d'opérateurs conditionnels nuls.

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!

Déclaration:
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