private void BtnEnviarCorreo_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrWhiteSpace(txtUsername.Text) || String.IsNullOrWhiteSpace(txtEmail.Text))
            {
                MessageBox.Show("Debe completar todos los campos.");
                return;
            }
            try//validar email
            {
                var addr = new MailAddress(txtEmail.Text);
                if (addr.Address != txtEmail.Text)
                {
                    MessageBox.Show("El email no es válido");
                    return;
                }
            }
            catch
            {
                MessageBox.Show("El email no es válido");
                return;
            }
            try
            {
                Modelo.Usuario usuario = usuarioBL.Consultar(txtUsername.Text, txtEmail.Text);
                if (usuario == null)
                {
                    MessageBox.Show("Los datos ingresados son incorrectos");
                    return;
                }

                string passDES = Logica.Hasheo.RandomString(6, true);
                usuario.Password = Logica.Hasheo.GenerarContrasena(passDES);

                usuarioBL.CambiarContrasena(passDES, usuario.ID, usuario.ID, true);

                usuarioBL.EnviarEmail(passDES, usuario.Email);

                MessageBox.Show("Revise su correo electrónico para conocer su nueva contraseña.");
            }
            catch (Exception)
            {
                MessageBox.Show("Ha ocurrido un error");
            }

            this.Close();
        }
示例#2
0
        private void BtnAceptar_Click(object sender, EventArgs e)
        {
            if (necesitaContrActual && String.IsNullOrWhiteSpace(txtContrasenaActual.Text) ||
                String.IsNullOrWhiteSpace(txtContrasenaNueva.Text) ||
                String.IsNullOrWhiteSpace(txtRepetirContrasena.Text))
            {
                MessageBox.Show("Debe completar todos los campos");
                return;
            }

            if (txtContrasenaNueva.Text != txtRepetirContrasena.Text)
            {
                MessageBox.Show("Las contraseñas no coinciden");
                return;
            }

            if (necesitaContrActual)
            {
                if (!usuarioBL.ValidarContrasena(usuario, txtContrasenaActual.Text, txtContrasenaNueva.Text))
                {
                    MessageBox.Show("La contraseña actual no es correcta o coincide con la nueva");
                    return;
                }
            }


            try
            {
                bool needNewPass = !necesitaContrActual;
                usuarioBL.CambiarContrasena(txtContrasenaNueva.Text, userId, Modelo.Sesion.ObtenerInstancia().Usuario.ID, needNewPass);

                Actualizar(false);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }
        }