none
Como validar un login y un password a partir de una tabla de base de datos

    Question

  • Pues tengo una tabala administrador e hice este codigo para validar el login y el password:

    DataTable mitabla = dsingresosistema.tbadministrador;
                DataRowCollection cfilas = mitabla.Rows;
                DataRow[] filabuscada; //matriz de filas que coincidan
                DataRow[] filabuscada2;

                //aplicar filtro
                string criterio = "login Like '*" + txtnombredeusuario.Text + "*'";
                string criterio2 = "pasword Like '*" + txtcontrasena.Text + "*'";
                string NL = Environment.NewLine;
              
                //utilizar el metodo select para encontrar todas las filas que pasen el filtro
                //y almacenarlas en la matriz fila buscada

                filabuscada = mitabla.Select(criterio);
                filabuscada2 = mitabla.Select(criterio2);

                //condicion por si el filtro no guardo al menos 0 filas
                if ((filabuscada.GetUpperBound(0) == -1) || (filabuscada2.GetUpperBound(0) == -1))
                {
                    MessageBox.Show("Ha Ingresado un Login o un password errado", "Ingreso Al Sistema",MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;

                }

                // mensaje que muestra el usuario y el perfil conectados
                int i;

                for (i = 0; i <= filabuscada.GetUpperBound(0); i++)
                {

                    if (MessageBox.Show("USUARIO: "+ (string)filabuscada[i]["login"]+ NL + "PERFIL: Administrador" +NL + "Se ha conectado satisfactoriamente" + NL,
                        "Login - Employee Software", MessageBoxButtons.OK,MessageBoxIcon.Information) == DialogResult.OK)
                    {
                        frmelegirtarea F = new frmelegirtarea();
                        F.lblusuariologueado.Text = txtnombredeusuario.Text;
                        this.Hide();
                        F.ShowDialog();

                        this.Close();
                        break;

     

    El problema esta en que si ingreso cualquier caracter del login o la contraseña accede al sistema

     

    Friday, June 11, 2010 12:14 AM

All replies

  • hola

    claro el tema es que sus el LIKE en tu consulta, y este busca por aproximacion, no busca exacto la coinidencia que necsitas en un ssitema de login

    analiza este ejemplo

    Login – Usando Password con Hash

    veras alli un sistem de login con el password encriptado con hash para aumentar la seguridad

    veras que no se usa el LIKE para buscar, sino que se igual tanto el nombre de usuario como el password (en este caso aplciado un hash previo) pero debe coincidir plenamente para que valide

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Friday, June 11, 2010 3:35 AM