Obtener MembershipUser actual en la autenticación de formularios

Me gustaría obtener el MembershipUser actual de mi página.

 Membership.GetUser(); 

devuelve nulo.

No se puede utilizar

 HttpContext.Current.User.Identity.Name 

ya que devuelve mi nombre de perfil según mi configuración para obtener el nombre de usuario también.

¿Cómo consigo mi usuario actual?

Actualización: el proveedor de membresía es SqlMembershipProvider

  1. Membership.GetUser () solo funcionará para un usuario autenticado. De lo contrario, va a volver nulo. Para verificar que está tratando con una solicitud autenticada, llame a “User.Identity.IsAuthenticated” en la página. Si tiene una solicitud autenticada, pero Membership.GetUser () sigue devolviendo un valor nulo, eso significa que el nombre de usuario asociado con el usuario autenticado no se puede encontrar en la fuente de datos de Membership. Verifique el nombre de usuario del usuario autenticado con “User.Identity.Name”.

  2. Si está llamando a una de las sobrecargas de Membership.GetUser () que toma el nombre de usuario y devuelve un valor nulo, entonces ese usuario no existe en la fuente de datos de Membership (o tenemos un error). Una forma de verificar esto fácilmente es probar Membership.CreateUser () con el mismo nombre de usuario. Si esto no produce un error debido a un usuario duplicado, entonces usted sabe que el usuario nunca existió en primer lugar.

  3. Membership.GetUser () nunca debería haber trabajado para un usuario anónimo. No se incorporó soporte en la Membresía para manejar este caso.

¿Has probado Page.User.Identity.Name

 Membership.GetUser(); 

Es perfectamente válido, lo que puede tener aquí son problemas de configuración, verifique dos veces su configuración web y asegúrese de que todo sea correcto, especialmente la sección de Formularios .