Beispiel #1
0
        private protected IEnumerable <Ace> FilterWithFilter(Func <Ace, bool> filter, Action <Acl, Predicate <Ace> > run_on_acl)
        {
            List <Ace> list = new List <Ace>();

            if (AclType.HasFlag(SecurityDescriptorAclType.Dacl))
            {
                FilterWithFilter(list, SecurityDescriptor.Dacl, true, filter, run_on_acl);
            }
            if (AclType.HasFlag(SecurityDescriptorAclType.Sacl))
            {
                FilterWithFilter(list, SecurityDescriptor.Sacl, false, filter, run_on_acl);
            }
            return(list);
        }
        private IEnumerable <Ace> FilterWithFilter(Func <Ace, bool> filter)
        {
            List <Ace> removed = new List <Ace>();

            if (AclType.HasFlag(RemoveAclType.Dacl))
            {
                FilterWithFilter(removed, SecurityDescriptor.Dacl, true, filter);
            }
            if (AclType.HasFlag(RemoveAclType.Sacl))
            {
                FilterWithFilter(removed, SecurityDescriptor.Sacl, false, filter);
            }
            return(removed);
        }