none
Login con estado del usuario RRS feed

  • Pregunta

  • Buenos días/tardes/noches!

    Estoy utilizando visual studio 2012 junto a sql server management studio.

    Tengo una tabla de Usuarios en la cual tengo las siguientes columnas:

    Cod_Usuario

    Usuario

    Password

    Estado

    La columna estado contiene el valor 0 si el usuario esta habilitado para loguearse y 1 si no esta habilitado, el problema radica en que no se como hacer la verificación de los datos, es decir, como verifico primero que los datos del usuario y password sean correctos y luego como verifico el estado para poder proceder.

    Desde ya muchisimas gracias!

    sábado, 25 de junio de 2016 16:55

Respuestas

  • ctrlcctrlv,

    Sugiero que hagas una consulta contra la base de datos validando la existencia del usuario y contraseña, donde además como parte de la lista de selección obtengas la columna [Estado], algo como lo siguiente:

    Dim ConsultaSQL As String = "SELECT ISNULL(MAX(Estado), -1) FROM Usuarios WHERE (Usuario = @Usuario AND [Password] = @Clave)"
    
    Dim cmd New SqlCommand (ConsultaSQL, cn)
    
    cmd.Parameters.AddWithValue("@Usuario", txtUsuario.Text)
    cmd.Parameters.AddWithValue("@Clave", txtClave.Text)
    
    cn.Open()
    
    Dim Resultado As Integer = Convert.ToInt32(cmd.ExecuteScalar)
    
    If (Resultado = -1) Then
            'El usuario o contraseña no son válidos
    ElseIf (Resultado = 0)
            'El usuario no está habilitado
    Else
            'Acceso permitido
    End If

    Fíjate en la consulta sql que realizo. Si el usuario o contraseña no son válidos retorno -1, si el usuario y contraseña existe muestro el valor del campo [Estado]: 0 o 1 y según eso se realiza las acciones

    • Marcado como respuesta ctrlcctrlv sábado, 25 de junio de 2016 17:35
    sábado, 25 de junio de 2016 17:10

Todas las respuestas

  • ctrlcctrlv,

    Sugiero que hagas una consulta contra la base de datos validando la existencia del usuario y contraseña, donde además como parte de la lista de selección obtengas la columna [Estado], algo como lo siguiente:

    Dim ConsultaSQL As String = "SELECT ISNULL(MAX(Estado), -1) FROM Usuarios WHERE (Usuario = @Usuario AND [Password] = @Clave)"
    
    Dim cmd New SqlCommand (ConsultaSQL, cn)
    
    cmd.Parameters.AddWithValue("@Usuario", txtUsuario.Text)
    cmd.Parameters.AddWithValue("@Clave", txtClave.Text)
    
    cn.Open()
    
    Dim Resultado As Integer = Convert.ToInt32(cmd.ExecuteScalar)
    
    If (Resultado = -1) Then
            'El usuario o contraseña no son válidos
    ElseIf (Resultado = 0)
            'El usuario no está habilitado
    Else
            'Acceso permitido
    End If

    Fíjate en la consulta sql que realizo. Si el usuario o contraseña no son válidos retorno -1, si el usuario y contraseña existe muestro el valor del campo [Estado]: 0 o 1 y según eso se realiza las acciones

    • Marcado como respuesta ctrlcctrlv sábado, 25 de junio de 2016 17:35
    sábado, 25 de junio de 2016 17:10
  • Gracias! me sirvió a la perfección amigo, lo único que cambie fue que cuando resultado sea igual a 0 en verdad si permite el acceso, es cuando el valor es igual a 1 donde lo tomo como deshabilitado.

    Muchas gracias.

    sábado, 25 de junio de 2016 17:36
  • ctrlcctrlv,

    Última recomendación, evita nombrar a los objetos de base de datos con palabras reservadas. Password es una palabra reservada de sql, fíjate que por eso lo enmarco entre corchetes [Password], evita problemas posteriores eligiendo correctamente el nombre de los objetos según las reglas de los identificadores.

    sábado, 25 de junio de 2016 17:55