none
Login con un límite de "intentos de acceso" en ASP:NET web forms (C#) RRS feed

  • Pregunta

  • Saludos, soy un neófito en esto de ASP, y pues bueno me dejaron elaborar un login en asp con un limite de 2 intentos y al llegar a esos dos intentos me arroje un mensaje, mis lineas son las siguientes

    int intentos = 0;
        protected void BtnIngr_Click(object sender, EventArgs e)
        {
            if (TxtUser.Text == "Ruben" && TxtPass.Text == "1234")
           {LbMsjAcce.Text = "¡¡¡Bienvenido al sistema!!!";
            Response.Redirect("Default3.aspx"); }

            else
            { LbMsjAcce.Text = "¡¡¡Contraseña o Usuario Incorrectos!!!";
                intentos = intentos + 1;}

            if (intentos == 2)
            {LbMsjAcce.Text = "¡¡¡Haz ingresado tus datos erroneamente  2 veces !!!";
                
            }
        }

    espero puedan auxiliarme, de antemano muchas gracias.

    miércoles, 15 de junio de 2016 0:39

Respuestas

  • El problema es que si eso lo has escrito dentro de un .aspx, la variable "intentos" se pierde cada vez que haces clic en el botón de Login. Podrías copiarla al ViewState, pero eso le permitiría al usuario hacer trampa por el simple método de recargar la página antes de cada intento de Login. Así que si quieres que el control de intentos sea realmente efectivo, tendrás que guardar un campo con el número de reintentos en el mismo sitio en el que guardes los usuarios (probablemente en una tabla en base de datos). Cada vez que hagan un intento fallido incrementas ese campo, y cuando hagan login con éxito lo devuelves a cero.

    Por cierto, si en lugar de programar tu propio Login usas el Membership que ya viene de fábrica con asp.net, ya trae incluido este control de intentos y no necesitas programar nada, solamente ponerle el límite dentro del web.config.

    miércoles, 15 de junio de 2016 5:53