Cansado de ver los mismos inicios de sesión comunes y corrientes, una práctica solución es implementar un login personalizado y cronometrado que sea capaz de controlar el número de intentos de cada uno de los usuarios válidados dentro de la aplicación, este práctico inicio de sesión implementa un contador de N intentos, y al cumplir 3 intentos permitidos, la aplicación se bloquea por 50 segundos para que el usuario pueda volver a intentar loguearse. El número de intentos así como su duración es totalmente personalizable, usted puede adecuarlo a sus proyectos como usted considere conveniente. Para ello debe modificar ciertas líneas de código dentro de la aplicación:
if (ContadorIntentos == 3) // DONDE 3 ES EL N NUMERO DE INTENTOS A CUMPLIRSE
{
CuentaRegresiva.Start(); // INICIO DE CUENTA REGRESIVA | BLOQUEO DE ACCESO
// LLAMADA DE CRONOMETRO CONTROLADO -> VENTANA EMERGENTE
Form Bloquear = new BloqueoSesion();
Bloquear.Show();
// BLOQUEO TOTAL DE CONTROLES DE ACCESO
txtPassUsuario.Enabled = false;
txtUsuarioLogin.Enabled = false;
btnIniciarSesion.Enabled = false;
}
private void CuentaRegresiva_Tick(object sender, EventArgs e)
{
// DECREMENTO EN UNO CUENTA REGRESIVA
InicializandoConteo--;
// SI CUENTA REGRESIVA LLEGA A CERO, ENTONCES...
if (InicializandoConteo == 0)
{
ContadorIntentos = 0; // RESETEANDO CONTADOR DE INTENTOS
CuentaRegresiva.Stop(); // DETENER CUENTA REGRESIVA
InicializandoConteo = 51; // INICIALIZANDO NUEVAMENTE CUENTA REGRESIVA
// HABILITANDO TODOS LOS CONTROLES DE ACCESO
txtPassUsuario.Enabled = true;
txtUsuarioLogin.Enabled = true;
btnIniciarSesion.Enabled = true;
/*
Y SE REPITE EL CICLO
<< IMPORTANTE: INICIALIZACION DE CONTEO EN 51, PARA QUE CONTEO DE VENTANA
EMERGENTE SEA EXACTAMENTE IGUAL AL CONTEO DEL FORMULARIO DE ACCESO >>
-- CASO CONTRARIO CONTEO ES DISPAREJO --
*/
}
En el primer bloque de código presentado anteriormente específicamente la línea de código número 173 del archivo form1.cs usted podrá modificar el número de intentos, además de modificar la línea número 251 del segundo bloque de código dentro de el evento CuentaRegresiva_Tick puede modificar la duración en segundos para la cuenta regresiva. Debe tomar en cuenta que en este archivo siempre debe aumentar en 1 la inicialización del cronometro, de lo contrario el conteo será disparejo y los controles se habilitarán antes de que la cuenta regresiva principal acabe.
Posteriormente debe ubicarse en el archivo BloqueoSesion.cs y dirigirse a la línea número 50 y modificar el valor de esa variable por el número exacto de conteo de cronómetro. Este punto es importante que se respete.
Se ha hecho uso de formularios emergentes personalizados, configurados para mostrarse como mensajes de alerta para los usuarios, siéntase en libertad de modificarlos y adecuarlos a sus necesidades.
A continuación algunas capturas de dichos mensajes de alerta
De igual forma se añadieron algunos efectos de sonido, tome en cuenta que debe modificar el archivo llamado ControlRutaNotificaciones.cs línea de código número 30 donde deberá modificar la ruta presentada por la ruta de su ordenador.
public String RutaNotificaciones()
{
String ControlRutaPC = "dany__000/Desktop/Full Calzado S.A de C.V/Notificaciones/"; // MODIFICAR RUTA
return ControlRutaPC;
}