2012-02-19 22 views
5

Uso de la membresía de Asp.net & Proveedores de perfiles:¿Es posible recuperar el perfil de los usuarios utilizando su identificación de usuario de membresía?

¿Puedo recuperar un perfil de usuario utilizando su ID de usuario de membresía en lugar de su nombre de usuario?

La razón que pido es porque si tengo el ID de usuario y no el nombre de usuario tendría que escribir las siguientes dos líneas de código

Dim MembershipUser As MembershipUser = Membership.GetUser("UserID") 
    Dim Profile As Profile = Profile.GetProfile(MembershipUser.UserName) 

En lugar de:

Dim perfil como perfil = Perfil .GetProfile ("UserID")

¿Afectará el rendimiento? Es mi diseño malo? ¿Me estoy perdiendo de algo?

Tenga en cuenta: Soy consciente de que puedo recuperar el actual usuario conectado usando el siguiente código: HttpContext.Current.User.Identity.Name

Respuesta

3
Guid userId = Membership.GetUser().ProviderUserKey as Guid; 

le dará la identificación de usuario que está buscando . Para simplificar en las aplicaciones de asp.net normalmente me quedo en la sesión cuando el usuario inicia sesión.

Las tablas de membresía de asp.net tienen un nombre de usuario único por aplicación, y como es posible definir múltiples aplicaciones en una base de datos, también será posible llamar a Profile.GetProfile (string userName) para devolver un perfil de una aplicación diferente . Es por eso que no hay GetProfile (userName) y es una mala idea implementarlo usted mismo.

+0

Estoy construyendo una aplicación web ASP.Net y no un sitio web, así que he usado WebProfileBuilder 1.3. (Como realmente no veo otra forma de hacerlo?) ... Puedo usar con éxito: WebProfile.GetProfile (UserName) pero no hay un método para pasar la identificación. ¿Tengo que personalizarlo? – Haris

+0

Si crea un nuevo sitio web en Visual Studio y luego agrega algunas propiedades, es decir, . A continuación, puede recuperar ese valor de código postal para cualquier usuario que utilice el siguiente código: Profile.GetProfile ("Nombre de usuario"). PostalCode. Entonces, ¿por qué estás diciendo que 'esta es la razón por la cual no hay GetProfile (userName) y es una mala idea implementarlo tú mismo'? – Haris

+0

No está claro por tu pregunta qué es exactamente lo que realmente quieres ... Al echar un vistazo a mi aplicación asp.net con membresía van asp.net, formulé estas series de preguntas: "¿Afectará esto el rendimiento? ¿mi diseño es malo? ¿Me estoy perdiendo algo? – b0rg

Cuestiones relacionadas