Saltar al contenido

¿Cómo obtener el usuario actual y cómo usar la clase de usuario en MVC5?

Solución:

Si está codificando en un controlador ASP.NET MVC, use

using Microsoft.AspNet.Identity;

...

User.Identity.GetUserId();

Vale la pena mencionar que User.Identity.IsAuthenticated y User.Identity.Name funcionará sin agregar lo mencionado anteriormente using declaración. Pero GetUserId() no estará presente sin él.

Si estás en una clase que no sea Controller, usa

HttpContext.Current.User.Identity.GetUserId();

En la plantilla predeterminada de MVC 5, el ID de usuario es un GUID almacenado como una cadena.

Aún no hay mejores prácticas, pero encontré información valiosa sobre cómo extender el perfil de usuario:

  • Visión general de Identity: https://devblogs.microsoft.com/aspnet/introducing-asp-net-identity-a-membership-system-for-asp-net-applications/
  • Solución de ejemplo sobre cómo extender el perfil de usuario agregando una propiedad adicional: https://github.com/rustd/AspnetIdentitySample

Prueba algo como:

var store = new UserStore<ApplicationUser>(new ApplicationDbContext());
var userManager = new UserManager<ApplicationUser>(store);
ApplicationUser user = userManager.FindByNameAsync(User.Identity.Name).Result;

Funciona con RTM.

Si desea el objeto ApplicationUser en una línea de código (si tiene instalada la última identidad ASP.NET), intente:

ApplicationUser user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId());

Necesitará las siguientes declaraciones de uso:

using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *