2010-05-07 18 views
7

Estoy tratando de mostrar una lista de usuarios de mi aplicación "escuela", cuando el administrador inicia sesión puede ver todos los usuarios en la lista pero cuando los directores de las escuelas inician sesión, debe obtener solo usuarios de su escuela, así que pensé en obtener el userId actualmente conectado y luego en ese userId obtendré schoolId dado que userId es clave foránea en la mesa de la escuela ... una vez que obtenga el ID de la escuela puedo mostrarle a los miembros de esa escuela.obtener el ID de usuario registrado actualmente en aspnet membresía mvc

Pero mi problema es cómo obtener el ID de usuario de actualmente conectado. Estoy usando MVC 1.0 Asp.Net - "Membresía"

si mi lógica anterior es incorrecta, por favor, dime la buena idea alternativa, por lo que director puede ver sólo su lista de usuarios ..

Respuesta

3

El Solución simple Con el escenario que describe, solo podrá hacerlo recuperando la información del usuario con los datos almacenados en HttpContext.Current.Identity. Por ejemplo, si HttpContext.Current.Identity.Name es el nombre de usuario, entonces usaría ese valor para recuperar los datos de usuario para el principal que deberían incluir UserId que puede usar para ubicar la escuela apropiada.

Solución alternativa Puede considerar almacenar SchoolId en el perfil del usuario para que sea más accesible.

+0

bien, THX estoy tan novato, pero ahora Tengo 1 duda más, ¿cómo puedo recuperar los datos del usuario usando "HttpContext.Current.Identity.Name". si hubiera usado mi propio controlador de membresía, me habría preguntado pero estoy usando membresía aspnet, entonces, ¿cómo hacer eso? – FosterZ

21

En base a esta question y respuesta de J. Pablo Fernández que pueda obtener el ID de usuario del usuario actual con el siguiente código:

//It will only be a Guid if you are using SQL Server as the DB as oppose to MySQL 
Guid userGuid = (Guid)Membership.GetUser().ProviderUserKey; 

Aquí es el MSDN Documentation.

3

La manera más fácil que he intentado

Tienes que incluir Microsoft.AspNet.Identity

using Microsoft.AspNet.Identity; 

Entonces utilizar de esta manera

var userId = User.Identity.GetUserId().ToString(); 
Cuestiones relacionadas