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.
À 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());
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.
Pour surmonter ces limitations, utilisez la classe UserManager fournie par le framework ASP.NET Identity :
var user = UserManager.FindById(User.Identity.GetUserId());
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.
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());
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!