En ASP.Net estoy tratando de obtener el id de usuario (es decir, el GUID de usuario) del usuario que acaba de iniciar sesión, en la LoggedIn caso de que el control de inicio de Sesión. Que es, que me quieren tomar el id de usuario antes de que el usuario se mueve a la siguiente página. Este es el código que estoy usando:

Protected Sub Login1_LoggedIn(ByVal sender As Object, _
  ByVal e As System.EventArgs) Handles Login1.LoggedIn

    Dim UserId As String
    UserId = Membership.GetUser.ProviderUserKey.ToString()

End Sub

Sin embargo, tengo una «referencia a Objeto no establecida como instancia de un objeto» error. Este mismo código funciona bien cuando lo uso en las páginas siguientes, cuando un usuario ha iniciado la sesión es que el acceso a estas páginas.

No debería ser Miembros.GetUser().ProviderUserKey.ToString()?
Este es VB.NET. El (la) después de GetUser es opcional. (Como es el () después de ToString)!

OriginalEl autor Proposition Joe | 2009-10-21

1 Comentario

  1. 12

    ScottGu tiene la respuesta a este problema, como se explica en este blog en el ASP.NET Foro:

    La LoggedIn evento se desencadena inmediatamente
    después de que el usuario se registra con el
    control de inicio de sesión, pero no antes de que el
    la siguiente solicitud para el sitio. Como tal,
    el objeto de Usuario no está lleno todavía.

    Si cambia el código para algo como:

    Dim UserId As String
    UserID = Membership.GetUser(Login1.UserName).ProviderUserKey.ToString()

    Debería funcionar bien. Llamar Membership.GetUser sin pasar el nombre de Usuario como parámetro va a agarrar la «actual» de la sesión del usuario. Por supuesto, esto no por las razones antes mencionadas como el User objeto aún no se ha rellenado. Pasando el Login del control UserName propiedad como un parámetro para la GetUser() método, usted explícitamente la fuerza de la Membership.GetUser método para recuperar el usuario especificado por el nombre del usuario de la tienda (es decir, base de datos). Esto asegura que el Membership.GetUser método devuelve un válido MembershipUser objeto que le permite acceder a la ProviderUserKey propiedad.

    Excelente, funcionó a la perfección. Gracias por su ayuda!
    Gracias Craig, este funcionó a la perfección para mí.
    esta respuesta era la solución a su problema, usted debe marcar como aceptado! Gracias!

    OriginalEl autor CraigTP

Dejar respuesta

Please enter your comment!
Please enter your name here