Ir a contenido


MENSAJE DE BIENVENIDA Foro vínculado con Twitter, más info aquí.

“El secreto para progresar es empezar por algún lugar. El secreto para empezar por algún lugar es fragmentar tus complejas y abrumadoras tareas de tal manera que queden convertidas en pequeñas tareas que puedas realizar y entonces simplemente comenzar por la primera.” - Mark Twain

Foto

Errores de la clase Membership y derivadas


  • Please log in to reply
1 reply to this topic

#1 Raul

Raul

    Especialista

  • Miembros
  • PipPipPip
  • 61 Mensajes:
  • LocationMadrid

Escrito 14 julio 2011 - 09:42

Hola, el otro día me estuve pegando con la clase System.Web.Security.Membership y sus derivadas, User y Roles.

El error concretamente venía al intentar borrar un usuario anteriormente introducido por mi. Estaba introduciendo usuarios de pruebas y repetía algunos datos entre ellos el mail. Al utilizar el método:

Membership.CreateUser(usuario, password, email, pregunta, respuesta, activo, estado)

no se generaba fallo alguno y se creaba el registro en la tabla User, pero no su correspondiente registro en la tabla Membership, donde aloja, entre otros datos, el mail. Al usar el método:

Membership.GetUser(Usuario)


para recuperar el usuario y eliminarlo, devuelve valor Null/Nothing debido a que al recuperar los datos del usuario, no tiene datos en la tabla Membership

Hasta ahí el fallo. Ahora la solución:

Se aplica el método de creación de esta forma:

    Dim estado As MembershipCreateStatus
    Dim usuario As MembershipUser

Try
    
    usuario = Membership.CreateUser(usuario, password, email, pregunta, respuesta, activo, estado)

    If usuario Is Nothing Then
       Me.lblerror.Text = estado.ToString
       Throw New MembershipCreateUserException
    End If

Catch ex As MembershipCreateUserException
    Membership.DeleteUser(usuario)
Catch ex As HttpException
    Me.lblerror.Text = ex.Message
End Try

Con una simple condición, comprobamos que sea Null/Nothing y lanzamos una excepción en su caso. De la variable estado de tipo MembershipCreateStatus, obtenemos el código de error.

Espero que os sea de utilidad en algún momento.

Saludos!
Raúl Gilabert González
Desarrollador .NET
@raulgilabert
www.raulgilabert.es

#2 Alberto Dominguez

Alberto Dominguez

    Gurú

  • Administradores
  • 1.059 Mensajes:
  • LocationMadrid

Escrito 14 julio 2011 - 11:56

Muchas gracias fiera!
Saludos,

Alberto Dominguez

Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Imagen enviadaPerfil Profesional Imagen enviadaTwitter
Imagen enviadaImagen enviadaImagen enviadaImagen enviada




0 usuarios están leyendo este tema

0 miembro/s, 0 invitado/s, 0 usuario/s anónimo/s