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 = "";
            }
        }
        public static List<Rol> ObtenerRoles(Usuario user)
        {
            List<Rol> l = new List<Rol>();

            List<SqlParameter> lParameters = new List<SqlParameter>();
            lParameters.Add(new SqlParameter("@nombre", user.Name));
            SqlDataReader lector = DBAcess.GetDataReader("SELECT * from VIDA_ESTATICA.roles_usuario(@nombre)", "T", lParameters);

            if (lector.HasRows)
            {
                while (lector.Read())
                {
                    Rol unRol = new Rol();
                    unRol.nombre = (string)lector["nombre"];
                    unRol.id = (int)lector["rol"];
                    unRol.activo = true;
                    l.Add(unRol);
                }
            }
            return l;
        }
 public FormPrincipal(Usuario invoker)
 {
     InitializeComponent();
     user = invoker;
 }