Example #1
0
        public void AumentarContadorReintentos()
        {
            SEG.Service.Usuario usuarioService = new SEG.Service.Usuario();

            SEG.Entity.Usuario user = usuarioService.Consultar("agustin.piastrellini");

            int result = usuarioService.AumentarContador(user);
        }
Example #2
0
        private void btnIngresar_Click(object sender, EventArgs e)
        {
            try
            {
                string nombreUsuario = txtUsuario.Text;
                string contraseña    = txtContraseña.Text;

                string validarCampos = this.ValidarCampos(nombreUsuario, contraseña);

                if (!String.IsNullOrEmpty(validarCampos))
                {
                    MessageBox.Show(validarCampos, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    bool verificarIntegridad = digitoverificadorService.VerificarIntegridad();

                    SEG.Entity.Usuario usuario = usuarioService.Consultar(txtUsuario.Text);
                    contraseña = SEG.Util.Encrypt.Encriptar(contraseña, (int)TipoEncriptacion.Irreversible);

                    // Valido si es o no administrador
                    bool esAdministrador = usuario.Permisos.Any(p => p.Nombre == "Administrador del Sistema");

                    bool contraseñaCorrecta = usuarioService.CompararContraseña(usuario.Contraseña, contraseña);

                    if (!verificarIntegridad && !esAdministrador)
                    {
                        throw new Exception("La base de datos no se encuentra en un estado correcto, si el problema persiste contactarse con el administrador.");
                    }

                    // Valido el estado bloqueado
                    bool usuarioBloqueado = usuarioService.ValidarEstado(usuario);

                    if (usuarioBloqueado && !esAdministrador)
                    {
                        throw new Exception("El usuario se encuentra bloqueado.");
                    }

                    if (!contraseñaCorrecta)
                    {
                        if (!esAdministrador)
                        {
                            usuario.Reintentos = usuarioService.AumentarContador(usuario);

                            if (usuario.Reintentos >= 3)
                            {
                                usuarioService.BloquearUsuario(usuario);

                                bitacoraService.Registrar(new SEG.Entity.Bitacora
                                {
                                    IdCriticidad = (int)Criticidad.Baja,
                                    Descripcion  = "Usuario bloqueado. " + usuario.NombreUsuario,
                                    IdUsuario    = usuario.Id,
                                    Fecha        = DateTime.Now
                                });

                                throw new Exception("Usuario bloqueado debido a que realizó 3 intentos de ingreso incorrectos.");
                            }
                        }

                        throw new Exception("Contraseña incorrecta");
                    }

                    // Logueo.
                    SEG.Service.SessionManager.Login(usuario);

                    // Reinicio el contador
                    usuarioService.ReiniciarContador(usuario);

                    //Registro en bitacora
                    bitacoraService.Registrar(new SEG.Entity.Bitacora
                    {
                        IdCriticidad = (int)Criticidad.Baja,
                        Descripcion  = "Usuario logueado con exito. " + usuario.NombreUsuario,
                        IdUsuario    = usuario.Id,
                        Fecha        = DateTime.Now
                    });

                    this.DialogResult = DialogResult.OK;

                    if (!verificarIntegridad && esAdministrador)
                    {
                        MessageBox.Show("La base de datos no se encuentra en un estado correcto, sera redirigido para resolver los errores.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                        this.DialogResult = DialogResult.Abort;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }