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
921 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!

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