c# - tables - asp.net membership
Obtenga la identificación de usuario actual en ASP.NET Identity 2.0 (3)
Acabo de cambiar a usar la nueva versión 2.0 de Identity Framework. En 1.0 podría obtener un objeto de usuario usando manager.FindByIdAsync(User.Identity.GetUserId())
. El método GetUserId()
no parece existir en 2.0.
Ahora todo lo que puedo averiguar es usar manager.FindByEmailAsync(User.Identity.Name)
que hace referencia al campo de nombre de usuario en la tabla de usuarios. En mi aplicación, esto se establece en el mismo campo de correo electrónico.
Puedo ver esto causando problemas en el futuro cuando alguien necesita actualizar su correo electrónico. ¿Hay alguna manera de obtener el objeto de usuario registrado actual basado en un valor inmutable (como el campo de id) en el Framework de Identity 2.0?
En caso de que sea como yo y el campo Id de la entidad usuaria es un Int o algo más que una cadena,
using Microsoft.AspNet.Identity;
int userId = User.Identity.GetUserId<int>();
hará el truco
Para obtener CurrentUserId en Asp.net Identity 2.0, primero importe Microsoft.AspNet.Identity
:
DO#:
using Microsoft.AspNet.Identity;
VB.NET:
Imports Microsoft.AspNet.Identity
Y luego llame a User.Identity.GetUserId()
donde quiera:
strCurrentUserId = User.Identity.GetUserId()
Este método devuelve el ID de usuario actual como tipo de datos definido para ID de usuario en la base de datos (el valor predeterminado es String
).
GetUserId()
es un método de extensión en IIdentity
y está en Microsoft.AspNet.Identity.IdentityExtensions
. Asegúrese de haber agregado el espacio de nombre con el using Microsoft.AspNet.Identity;
.