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

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

Barbara Streisand
Libérer: 2024-12-27 10:52:10
original
871 Les gens l'ont consulté

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

Comment obtenir l'utilisateur d'application actuel dans l'identité ASP.NET MVC 5

Contrairement à l'ancien mécanisme d'adhésion, l'identité ASP.NET fournit un API pour accéder à l'objet utilisateur actuel. Voici comment l'obtenir :

Utilisation de UserManager

Dans les contrôleurs ou dans d'autres zones où vous avez accès au gestionnaire d'utilisateurs par défaut, vous pouvez utiliser la méthode FindById. :

using Microsoft.AspNet.Identity;

public ActionResult Create()
{
    var user = UserManager.FindById(User.Identity.GetUserId());
    return View();
}
Copier après la connexion

Dans Non-contrôleurs

Si vous êtes des contrôleurs extérieurs, vous pouvez utiliser le code suivant :

using Microsoft.AspNet.Identity;
using System.Web;

public class MyCustomService
{
    private HttpContext _httpContext;

    public MyCustomService(HttpContext httpContext)
    {
        _httpContext = httpContext;
    }

    public ApplicationUser GetCurrentUser()
    {
        var userId = _httpContext.User.Identity.GetUserId();
        var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
        return userManager.FindById(userId);
    }
}
Copier après la connexion

Utilisation du contexte Owin (mise à jour de mars 2015)< /h3>

Cette méthode peut être nécessaire lors de l'accès à l'utilisateur actuel depuis l'OWIN contexte, comme à partir de SignalR Hubs ou dans d'autres scénarios où les mécanismes standards ne sont pas disponibles :

using Microsoft.AspNet.Identity;
using System.Web;

public class MySignalRHub : Hub
{
    public ApplicationUser GetCurrentUser()
    {
        var user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId());
        return user;
    }
}
Copier après la connexion

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