Respuesta

4

No estoy seguro de si entiendo su pregunta aquí o no, pero creo que su suposición es incorrecta.

MemberhipUser es utilizado por System.Web.Security para autenticar a un usuario a través del MembershipProvider que ha configurado en su configuración web. Cuando se llama ...

MembershipUser user = Membership.GetUser(username); 

Su proveedor de pertenencia se consulta el almacén de datos donde se guarda la información de usuario (A base de datos SQL, Active Directory, etc ..) y volver los datos Memberhsip sotred para ese nombre de usuario.

Si ha definido otra clase en su aplicación que implementa la interfaz IPrincipal y ha creado una instancia de un objeto de ese tipo, eso no significa necesariamente que su objeto MembershipUser y su objeto personalizado compartan datos (a menos que por supuesto lo haya asignado la referencia mediante programación)

Tal vez si ya ha proporcionado un ejemplo de código que ayudaría a aclarar

+1

entiendo que si crea manualmente principal objeto (objeto que implementa la interfaz IPrincipal) que también hay que programmaticaly crear una referencia entre los dos objetos. Pero en mi pregunta inicial me refería (lo siento por no ser más específico) al objeto principal que representa el contexto de seguridad del usuario actual y Asp.Net lo crea automáticamente al usar la autenticación de formularios. Pensé que en ese caso Asp.Net también se ocupa de "sincronizar" los dos objetos. – SourceC

+1

¿Aún no entiendo qué quiere que sea "sincronizado" entre los dos objetos? En realidad, no comparten nada: la implementación de IPrincipal contiene un IIdentity, pero eso es todo ... –

+3

IPrincipal en el contexto de Asp.net (HttpContext.User) es el usuario que ejecuta el proceso actual en la máquina. MembershipUser es un usuario de la aplicación que almacena en algún lugar en un almacén de datos. Durante la autorización, puede configurar el HttpContext.User asignando valores de su MembershipUser al ticket FormsAuthentication, pero los dos objetos a los que hace referencia nunca se sincronizan automáticamente. –

Cuestiones relacionadas