Maison > développement back-end > C++ > Comment récupérer efficacement l'utilisateur d'application actuel dans l'identité ASP.NET MVC 5 ?

Comment récupérer efficacement l'utilisateur d'application actuel dans l'identité ASP.NET MVC 5 ?

DDD
Libérer: 2024-12-25 09:37:37
original
1088 Les gens l'ont consulté

How to Efficiently Retrieve the Current ApplicationUser in ASP.NET MVC 5 Identity?

ASP.NET MVC 5 - Identité : obtention de l'utilisateur d'application actuel

Afin de définir la propriété Author d'une entité Article sur l'utilisateur authentifié actuel, il est crucial de récupérer l'intégralité de l'ApplicationUser objet.

Approche standard

À l'aide de l'extension d'identité, vous pouvez facilement récupérer l'utilisateur actuel à l'aide du code suivant :

ApplicationUser currentUser = db.Users.FirstOrDefault(x => x.Id == User.Identity.GetUserId());
Copier après la connexion

Cependant, cette approche présente des inconvénients. Cela nécessite une interrogation directe de la base de données, introduisant des dépendances supplémentaires et des incohérences potentielles avec les futures modifications de la base de données.

Approche alternative

Pour surmonter ces limitations, utilisez la classe UserManager fournie par le framework ASP.NET Identity :

var user = UserManager.FindById(User.Identity.GetUserId());
Copier après la connexion

Cette méthode récupère efficacement l'utilisateur actuel sans avoir besoin d'une connexion directe accès à la base de données. Il garantit la cohérence avec les futures modifications de l'API et élimine le risque d'introduire de nouvelles dépendances de contexte.

Synchronisation avec OWIN

Lors de l'accès à l'objet utilisateur en dehors d'un contrôleur, récupérer l'ID utilisateur à partir du OwinContext du HttpContent actuel :

ApplicationUser user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId());
Copier après la connexion

Cette approche garantit synchronisation avec la gestion des utilisateurs assurée par OWIN.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal