private void btn_guardar_Click(object sender, EventArgs e) { try { Validaciones.inicializarValidador(); Validaciones.esValido(username.Name, username.Text, new Validaciones.NumerosLetrasGuion()); Validaciones.esValido(passwordAnterior.Name, passwordAnterior.Text, new Validaciones.NumerosLetrasGuion()); Validaciones.esValido(passwordNueva.Name, passwordNueva.Text, new Validaciones.NumerosLetrasGuion()); Validaciones.esValido(passwordNuevaConfirmacion.Name, passwordNuevaConfirmacion.Text, new Validaciones.NumerosLetrasGuion()); if (!String.IsNullOrEmpty(Validaciones.camposInvalidos)) { throw new CamposInvalidosException(); } if (passwordNueva.Text != passwordNuevaConfirmacion.Text) { throw new ControlDePKException(); } if (!BDManager.existsButWith("usuario", "username", user.username, "password=HASHBYTES('SHA2_256','" + passwordAnterior.Text + "')")) { throw new PasswordIncorrectaException(); } if (passwordAnterior.Text == passwordNueva.Text) { throw new PasswordIgualException(); } user.password = passwordNueva.Text; BDManager.updateEncryptedUser(user); MessageBox.Show("El usuario ha sido modificado", "Usuario modificado correctamente", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } catch (CamposInvalidosException) { MessageBox.Show(Validaciones.camposInvalidos, "Error al validar campos del usuario a registrar", MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (ControlDePKException) { MessageBox.Show("Contraseña nueva mal escrita", "Error al validar campos del usuario a insertar", MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (PasswordIncorrectaException) { MessageBox.Show("Contraseña anterior incorrecta", "Error al validar contraseña", MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (PasswordIgualException) { MessageBox.Show("Contraseña anterior y nueva iguales", "Error al validar contraseña", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
private void btn_guardar_Click(object sender, EventArgs e) { try { Validaciones.inicializarValidador(); Validaciones.esValido(username.Name, username.Text, new Validaciones.NumerosLetrasGuion()); Validaciones.esValido(password.Name, password.Text, new Validaciones.NumerosLetrasGuion()); Validaciones.esValido("roles asignados", listaRoles.Items.Count.ToString(), new Validaciones.NumeroNoCreo()); if (!String.IsNullOrEmpty(Validaciones.camposInvalidos)) { throw new CamposInvalidosException(); } // fin validaciones regex usuarioAModificar.username = username.Text; usuarioAModificar.password = password.Text; BDManager.updateEncryptedUser(usuarioAModificar); BDManager.deleteByField("rol_x_usuario", "username", "'" + usuarioAModificar.username + "'"); foreach (rol r in listaRoles.Items) { BDManager.insertInto("rol_x_usuario", new rol_x_usuario { id_rol = r.id_rol, username = usuarioAModificar.username, }); } MessageBox.Show("El usuario ha sido modificado", "Usuario modificado correctamente", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } catch (CamposInvalidosException) { MessageBox.Show(Validaciones.camposInvalidos, "Error al validar campos del usuario a modificar", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
private void btn_ingresar_Click(object sender, EventArgs e) { try { Validaciones.inicializarValidador(); Validaciones.esValido(username.Name, username.Text, new Validaciones.NumerosLetrasGuion()); Validaciones.esValido("password", passwordAnterior.Text, new Validaciones.NumerosLetrasGuion()); if (!String.IsNullOrEmpty(Validaciones.camposInvalidos)) { throw new CamposInvalidosException(); } // todos los controles contra usuario if (!BDManager.exists("usuario", "username", username.Text)) { throw new UsuarioNoExistenteException(); } if (!BDManager.existsButWith("usuario", "username", username.Text, "password=HASHBYTES('SHA2_256','" + passwordAnterior.Text + "')")) { usuarioGlobal.restarIntento(); if (usuarioGlobal.numeroDeIntentos < 1) { usuario ur = new usuario(); ur.username = username.Text; ur.habilitado = "False"; BDManager.updateEncryptedUser(ur); throw new UsuarioInhabilitadoException(); } throw new PasswordIncorrectaException(); } usuario u = new usuario(); BDManager.selectIntoObjectByString("usuario", "username", username.Text, u); if (u.habilitado == "False") { throw new UsuarioInhabilitadoException(); } if (BDManager.existsButWith("usuario", "username", username.Text, "HASHBYTES('SHA2_256','" + passwordAnterior.Text + "')=HASHBYTES('SHA2_256','" + u.username + "')")) { MessageBox.Show("Su usuario " + username.Text + " debe cambiar su contraseña, ya que es su primer ingreso. Acepte este cuadro de diálogo para hacerlo.", "Usuario logueado por primera vez", MessageBoxButtons.OK, MessageBoxIcon.Warning); RegistraUsuario registraUsuario = new RegistraUsuario(u); registraUsuario.ShowDialog(); throw new DebeCambiarContraseniaException(); } // ahora tengo que ver si el user tiene 1 rol o mas List <object> listaTraidaDeBD = BDManager.getList("SELECT * FROM EQUISDE.rol r JOIN EQUISDE.rol_x_usuario ru ON r.id_rol = ru.id_rol JOIN EQUISDE.usuario u ON ru.username = u.username WHERE r.habilitado=1 AND u.username ='******'", new rol()); List <rol> listaRolesDeEseUsuario = listaTraidaDeBD.Cast <rol>().ToList(); if (listaRolesDeEseUsuario.Count < 1) { throw new UsuarioNoTieneRolesException(); } usuarioGlobal.usuarioLogueado = u; usuarioGlobal.numeroDeIntentos = 3; if (listaRolesDeEseUsuario.Count > 1) { MessageBox.Show("El usuario" + username.Text + " tiene su username igual a su password. Debe ingresar una contraseña segura de ingreso permanente al sistema.", "Usuario inhabilitado", MessageBoxButtons.OK, MessageBoxIcon.Warning); SeleccionaRol seleccionaRol = new SeleccionaRol(); usuarioGlobal.posiblesRoles = listaRolesDeEseUsuario; seleccionaRol.ShowDialog(); } else { usuarioGlobal.rolLogueado = listaRolesDeEseUsuario[0]; } MessageBox.Show("Login exitoso del usuario " + u.username, "Login completado", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Hide(); // show other form MenuPrincipal m = new MenuPrincipal(); m.ShowDialog(); // close application this.Close(); } catch (CamposInvalidosException) { MessageBox.Show(Validaciones.camposInvalidos, "Error al validar campos del usuario a loguear", MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (PasswordIncorrectaException) { MessageBox.Show("Contraseña incorrecta. Restan " + usuarioGlobal.numeroDeIntentos + " intento(s)", "Error en contraseña", MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (UsuarioNoExistenteException) { MessageBox.Show("Usuario no existente en el sistema", "Error al validar campos del usuario a loguear", MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (UsuarioInhabilitadoException) { MessageBox.Show("El usuario " + username.Text + " se encuentra inhabilitado", "Usuario inhabilitado", MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (DebeCambiarContraseniaException) { } catch (UsuarioNoTieneRolesException) { MessageBox.Show("El usuario" + username.Text + " no posee roles", "Usuario incorrecto", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }