public void btnIngresar_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtUserName.Text != "" && txtPassword.Text != "")
                {
                    // Armo usuario
                    Usuario user = new Usuario(txtUserName.Text);
                    if (txtUserName.Text == "admin")
                    {
                        // Pass hashing
                        UTF8Encoding encoderHash = new UTF8Encoding();
                        SHA256Managed hasher = new SHA256Managed();
                        byte[] bytesDeHasheo = hasher.ComputeHash(encoderHash.GetBytes(txtPassword.Text));
                        string pass = bytesDeHasheoToString(bytesDeHasheo);

                        if (!user.Password.Equals(pass))
                        {
                            // llamar a VIDA_ESTATICA.updateIntentos
                            user.ActualizarFallidos();

                            MessageBox.Show("Usuario y contraseña no validos", "Error!", MessageBoxButtons.OK);
                            txtPassword.Text = "";
                        }
                        else
                        {
                            // Está activo?
                            if (!user.Activo)
                                MessageBox.Show("Usuario inactivo para acceder al sistema", "Error!", MessageBoxButtons.OK);
                            else
                            {
                                user.ReiniciarFallidos();

                                // Paso al form Principal (requiere user siempre)
                                FormPrincipal formPrincipal = new FormPrincipal(user);
                                this.Hide();
                                formPrincipal.Show();
                            }
                        }
                    }
                    else
                    {

                        MessageBox.Show("Usuario y contraseña no validos", "Error!", MessageBoxButtons.OK);
                        txtPassword.Text = "";
                    }

                }
                else MessageBox.Show("Complete todos los campos", "Error!", MessageBoxButtons.OK);
            } catch {

                MessageBox.Show("Usuario y contraseña no validos", "Error!", MessageBoxButtons.OK);
                txtPassword.Text = "";
            }
        }
示例#2
0
        //Functions Section
        private void login(String username, String password)
        {
            String hashedPass = sha256(password);

            DAO.connect();
            Usuario usuario = DAO.selectOne<Usuario>(new[] { "username = '******'"});
            if (usuario == null) {
                MessageBox.Show("Usuario incorrecto.", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.DialogResult = DialogResult.None;
                return;
            }
            IntentosLogin intentos = DAO.selectOne<IntentosLogin>(new[] { "usuario_id = " + usuario.Id });
            DAO.closeConnection();

            if (usuario != null && usuario.Password.Equals(hashedPass) && usuario.Activo) {
                intentos.Intentos = 0;
                DAO.connect();
                DAO.update<IntentosLogin>(intentos);
                DAO.closeConnection();
                this.DialogResult = DialogResult.OK;
                this.loggedUser = usuario;
            }
            else if (!usuario.Activo)
            {
                MessageBox.Show("El usuario se encuentra bloqueado por exceder los intentos de autenticación permitidos.", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.DialogResult = DialogResult.None;
            }
            else
            {
                intentos.Intentos += 1;
                DAO.connect();
                DAO.update<IntentosLogin>(intentos);
                if (intentos.Intentos == 3)
                {
                    usuario.Activo = false;
                    DAO.update<Usuario>(usuario);
                    MessageBox.Show("El usuario fue bloqueado por exceder los intentos permitidos.", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    MessageBox.Show("Contraseña invalida. Recuerde que solo puede tener hasta 3 intentos fallidos. Le quedan " + (3 - intentos.Intentos) + " intentos.", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                DAO.closeConnection();
                this.DialogResult = DialogResult.None;
            }
        }
 public PantallaCliente(Usuario invoker)
 {
     InitializeComponent();
     user = invoker;
 }