private void btnIngresar_Click(object sender, EventArgs e) { if (txtUsuario.Text == "") { lblError.Text = "Ingrese usuario"; } else if (txtContrasena.Text == "") { lblError.Text = "Ingrese contraseña"; } else { GestorDB gestor = new GestorDB(); int result; try { gestor.conectar(); gestor.generarStoredProcedure("autenticar_usuario"); gestor.parametroPorValor("@usuario", txtUsuario.Text); gestor.parametroPorValor("@contrasenna", txtContrasena.Text); gestor.parametroPorReferencia("@id", SqlDbType.Int); result = gestor.ejecutarStoredProcedure(); gestor.desconectar(); } catch (Exception) { result = -1; } if (result == 0) { lblError.Text = "El usuario es inválido"; } else { if (result == 1) { lblError.Text = "La contraseña es inválida"; } else if (result == 2 || result == 3) { int userID = Convert.ToInt32(gestor.obtenerValor("@id")); gestor.conectar(); string query = "SELECT COUNT(*) AS cant_roles " + "FROM PEAKY_BLINDERS.roles_por_usuario RU " + "JOIN PEAKY_BLINDERS.roles R ON RU.id_rol = R.id_rol " + "WHERE R.habilitado = 1 AND RU.id_usuario = '" + userID.ToString() + "'"; gestor.consulta(query); SqlDataReader lector = gestor.obtenerRegistros(); int cantRolesAsignados = 0; if (lector.Read()) { cantRolesAsignados = Convert.ToInt32(lector["cant_roles"]); } gestor.desconectar(); switch (cantRolesAsignados) { case 0: lblError.Text = "Usuario sin roles habilitados asignados"; break; case 1: gestor.conectar(); string query2 = "SELECT RU.id_rol " + "FROM PEAKY_BLINDERS.roles_por_usuario RU " + "JOIN PEAKY_BLINDERS.roles R ON RU.id_rol = R.id_rol " + "WHERE R.habilitado = 1 AND RU.id_usuario = '" + userID + "'"; gestor.consulta(query2); SqlDataReader lector2 = gestor.obtenerRegistros(); if (lector2.Read()) { int rolID = Convert.ToInt32(lector2["id_rol"].ToString()); Form formDestino; if (result == 2) { formDestino = new FormMenuPrincipal(userID, rolID); } else { formDestino = new FormNuevaContrasena(userID, rolID, true); } this.Hide(); formDestino.Show(); } break; default: FormElegirRol formElegirRol; if (result == 2) { formElegirRol = new FormElegirRol(userID, false); } else { formElegirRol = new FormElegirRol(userID, true); } this.Hide(); formElegirRol.Show(); break; } } else if (result == 4) { lblError.Text = "La contraseña es inválida"; MessageBox.Show("Su cuenta ha sido inhabilitada por realizar 3 intentos incorrectos, comúniquese con un administrador", "ALERTA"); } else if (result == 5) { lblError.Text = "El usuario se encuentra inhabilitado"; } else { lblError.Text = "Error de conexión a la base de datos"; } } } lblError.Visible = true; }