vista una pasar net mvc entre datos controladores controlador busqueda asp asp.net asp.net-mvc-4 membership

asp.net - una - pasar datos entre controladores mvc



Obtenga UserId(int) en la nueva aplicaciĆ³n MVC4 (4)

La nueva aplicación MVC4 creó la tabla UserProfile:

UserId (int) | Nombre de usuario (nvarchar)

En el controlador:

string currentUser = User.Identity.Name; // returns UserName var mu1 = Membership.GetUser(); // returns null var mu2 = Membership.GetUser(currentUser); // returns null as well

Leo muchos hilos y todos hablan sobre cómo obtener Guid, que ni siquiera tengo en las tablas de usuarios y membresías.

¿Hay alguna manera de obtener UserId (int) del Usuario actualmente conectado?


Puede obtener UserId como int con

WebSecurity.GetUserId(User.Identity.Name);

Información adicional: debe agregar [InitializeSimpleMembership] en la parte superior de la clase del controlador si usa otro controlador que AccountController.


mu1 y mu2 contendrán una instancia de MembershipUser si el usuario se ha autenticado correctamente. MembershipUser tiene una propiedad ProviderUserKey de tipo object que contendrá el identificador para un usuario.

Membership.GetUser() requiere que MembershipProvider se conecte para la aplicación y para que el usuario sea autenticado; ya que está viendo un retorno null , esto sugeriría que una de las condiciones antes mencionadas no se cumple.


Asegúrese de agregar [InitializeSimpleMembership] a la parte superior de su controlador para que inicialice la membresía simple a través del archivo InitializeSimpleMembershipAttribute.cs en el directorio de Filters .

Luego puede acceder a la identificación de usuario de varias maneras diferentes:

int mu1 = (int)WebSecurity.CurrentUserId; int mu2 = (int)Membership.GetUser().ProviderUserKey;


Puedes obtener UserId

if (Request.IsAuthenticated) { var membership = (SimpleMembershipProvider)Membership.Provider; int idUser = membership.GetUserId(User.Identity.Name); }