public void ReestablecerContraseña(string nombreUsuario) { try { var usuario = usuarioBLL.Obtener(nombreUsuario); usuario.Contraseña = servicioSeguridad.Encriptar(servicioSeguridad.GenerarContraseñaAleatoria(8)); usuarioBLL.Modificacion(usuario); } catch (Exception) { throw; } }
private void ClickIngresar(object sender, EventArgs e) { try { var nombreDeUsuario = ((TextBox)controles.Find(x => x.Name == "txtUsuario")).Text; var contraseña = servicioSeguridad.Encriptar(((TextBox)controles.Find(x => x.Name == "txtContraseña")).Text); if (string.IsNullOrWhiteSpace(nombreDeUsuario) || string.IsNullOrWhiteSpace(contraseña)) { ((TextBox)controles.Find(x => x.Name == "txtUsuario")).Focus(); throw new Exception("Debe completar todos los campos"); } if (!seguridadBLL.NombreDeUsuarioValido(nombreDeUsuario)) { ((TextBox)controles.Find(x => x.Name == "txtUsuario")).Focus(); ServicioConfiguracionDeControles.LimpiarControles(this.controles); throw new Exception("El usuario no existe"); } if (seguridadBLL.ContraseñaValida(nombreDeUsuario, contraseña)) { SeguridadBLL.usuarioLogueado = usuarioBLL.Obtener(nombreDeUsuario); ServicioConfiguracionDeControles.LimpiarControles(this.controles); frm.Hide(); frmPrincipal.ShowDialog(); frm.Show(); } else { if (!intentosPorUsuario.ContainsKey(nombreDeUsuario)) { intentosPorUsuario.Add(nombreDeUsuario, 0); } ServicioConfiguracionDeControles.LimpiarControles(this.controles); intentosPorUsuario[nombreDeUsuario] += 1; if (intentosPorUsuario[nombreDeUsuario] == 5) { this.ReestablecerContraseña(nombreDeUsuario); intentosPorUsuario[nombreDeUsuario] = 0; } else { ((TextBox)controles.Find(x => x.Name == "txtUsuario")).Focus(); throw new Exception("La contraseña es incorrecta"); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void ClickAceptar(object sender, EventArgs e) { try { if (DatosValidos()) { var usuario = new Entidades.Usuario(); usuario.Id = idUsuario ?? 0; usuario.Nombre = ((TextBox)controles.Find(x => x.Name == "txtNombre")).Text; usuario.Apellido = ((TextBox)controles.Find(x => x.Name == "txtApellido")).Text; usuario.DNI = int.Parse(((TextBox)controles.Find(x => x.Name == "txtDNI")).Text); usuario.NombreDeUsuario = ((TextBox)controles.Find(x => x.Name == "txtNombreDeUsuario")).Text; usuario.Contraseña = servicioSeguridad.Encriptar(((TextBox)controles.Find(x => x.Name == "txtContraseña")).Text); usuario.Correo = ((TextBox)controles.Find(x => x.Name == "txtCorreo")).Text; string idRolSeleccionado = ((ComboBox)controles.Find(x => x.Name == "comboRoles")).SelectedValue.ToString(); usuario.Rol = rolBLL.Obtener(int.Parse(idRolSeleccionado)); string idUbicacionSeleccionado = ((ComboBox)controles.Find(x => x.Name == "comboUbicacion")).SelectedValue.ToString(); usuario.Ubicacion = ubicacionBLL.Obtener(int.Parse(idUbicacionSeleccionado)); if (idUsuario.HasValue) { usuarioBLL.Modificacion(usuario); MessageBox.Show("Recuerde que si modificó al usuario con el que está logueado, debe cerrar sesión y volver a iniciar para ver reflejados los cambios", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { usuarioBLL.Alta(usuario); } frm.Close(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }