Maison > développement back-end > C++ > Comment accéder efficacement aux informations utilisateur actuelles dans les contrôleurs ASP.NET Core à portée de requête ?

Comment accéder efficacement aux informations utilisateur actuelles dans les contrôleurs ASP.NET Core à portée de requête ?

Mary-Kate Olsen
Libérer: 2025-01-13 12:10:43
original
589 Les gens l'ont consulté

How to Efficiently Access Current User Information in ASP.NET Core Request-Scoped Controllers?

Accès aux détails de l'utilisateur dans les contrôleurs à portée de requête ASP.NET Core

La récupération des détails des utilisateurs authentifiés, tels que leur adresse e-mail, est cruciale dans les applications Web. Cependant, gérer cela efficacement dans les contrôleurs ASP.NET Core à l’échelle des requêtes nécessite une attention particulière.

Problème : l'accès direct à HttpContext.User dans le constructeur d'un contrôleur entraîne souvent un HttpContext nul, empêchant la récupération des informations utilisateur. Récupérer ces données à plusieurs reprises dans chaque méthode d'action est inefficace.

Solution : exploitez l'attribut [Authorize] et le service IHttpContextAccessor.

Étapes pour accéder aux informations utilisateur :

  1. Inscrivez-vous IHttpContextAccessor dans votre Startup.cs (ou Program.cs dans .NET 6 et versions ultérieures) :
<code class="language-csharp">public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpContextAccessor();
    // ... other services
}</code>
Copier après la connexion
  1. Injectez IHttpContextAccessor dans le constructeur de votre contrôleur :
<code class="language-csharp">public class MyController : Controller
{
    private readonly IHttpContextAccessor _httpContextAccessor;

    public MyController(IHttpContextAccessor httpContextAccessor)
    {
        _httpContextAccessor = httpContextAccessor;
        //Retrieve and store user ID
        var userId = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value; 
        //Further processing of userId as needed...
    }

    // ... your controller actions ...
}</code>
Copier après la connexion

Cette approche vous permet d'accéder à l'identité de l'utilisateur au sein du constructeur du contrôleur. Vous pouvez ensuite stocker ces informations pour une utilisation ultérieure dans le contrôleur, améliorant ainsi l'efficacité et évitant les appels répétés à HttpContext.User. L'utilisation de l'opérateur conditionnel nul (?.) gère les cas où la revendication peut ne pas être présente.

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