/// <summary>从与此 <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> 对象关联的系统访问控制列表 (SACL) 中移除与指定的审核规则完全匹配的所有审核规则。</summary>
 /// <param name="rule">要移除的审核规则。</param>
 protected void RemoveAuditRuleSpecific(ObjectAuditRule rule)
 {
     if (rule == null)
     {
         throw new ArgumentNullException("rule");
     }
     this.WriteLock();
     try
     {
         bool modified;
         this.ModifyAudit(AccessControlModification.RemoveSpecific, rule, out modified);
     }
     finally
     {
         this.WriteUnlock();
     }
 }
 protected void AddAuditRule(ObjectAuditRule rule)
 {
     if (rule == null)
     {
         throw new ArgumentNullException("rule");
     }
     base.WriteLock();
     try
     {
         bool flag;
         this.ModifyAudit(AccessControlModification.Add, rule, out flag);
     }
     finally
     {
         base.WriteUnlock();
     }
 }
Exemplo n.º 3
0
 protected void SetAuditRule(ObjectAuditRule rule)
 {
     if (rule == null)
     {
         throw new ArgumentNullException("rule");
     }
     base.WriteLock();
     try
     {
         bool flag;
         this.ModifyAudit(AccessControlModification.Set, rule, out flag);
     }
     finally
     {
         base.WriteUnlock();
     }
 }
Exemplo n.º 4
0
        protected void RemoveAuditRuleAll(ObjectAuditRule rule)
        {
            if (rule == null)
            {
                throw new ArgumentNullException(nameof(rule));
            }

            WriteLock();

            try
            {
                bool modified;
                ModifyAudit(AccessControlModification.RemoveAll, rule, out modified);
            }
            finally
            {
                WriteUnlock();
            }
        }
Exemplo n.º 5
0
        protected void SetAuditRule(ObjectAuditRule rule)
        {
            if (rule == null)
            {
                throw new ArgumentNullException(nameof(rule));
            }
            Contract.EndContractBlock();

            WriteLock();

            try
            {
                bool modified;
                ModifyAudit(AccessControlModification.Set, rule, out modified);
            }
            finally
            {
                WriteUnlock();
            }
        }
        protected bool RemoveAuditRule(ObjectAuditRule rule)
        {
            if (rule == null)
            {
                throw new ArgumentNullException("rule");
            }
            Contract.EndContractBlock();

            WriteLock();

            try
            {
                bool modified;
                return(ModifyAudit(AccessControlModification.Remove, rule, out modified));
            }
            finally
            {
                WriteUnlock();
            }
        }
Exemplo n.º 7
0
        protected bool RemoveAuditRule(ObjectAuditRule rule)
        {
            bool flag2;

            if (rule == null)
            {
                throw new ArgumentNullException("rule");
            }
            base.WriteLock();
            try
            {
                bool flag;
                flag2 = this.ModifyAudit(AccessControlModification.Remove, rule, out flag);
            }
            finally
            {
                base.WriteUnlock();
            }
            return(flag2);
        }
Exemplo n.º 8
0
 public bool RemoveAudit(SecurityIdentifier sid, ObjectAuditRule rule)
 {
     return RemoveAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
 }
Exemplo n.º 9
0
        protected bool RemoveAuditRule(ObjectAuditRule rule)
        {
            if (rule == null)
            {
                throw new ArgumentNullException(nameof(rule));
            }
            Contract.EndContractBlock();

            WriteLock();

            try
            {
                bool modified;
                return ModifyAudit(AccessControlModification.Remove, rule, out modified);
            }
            finally
            {
                WriteUnlock();
            }
        }
Exemplo n.º 10
0
        //
        // Modifies the SACL
        //
        private bool ModifyAudit(AccessControlModification modification, ObjectAuditRule rule, out bool modified)
        {
            bool result = true;

            if (SecurityDescriptor.SystemAcl == null)
            {
                if (modification == AccessControlModification.Remove || modification == AccessControlModification.RemoveAll || modification == AccessControlModification.RemoveSpecific)
                {
                    modified = false;
                    return(result);
                }

                //_securityDescriptor.SystemAcl = new SystemAcl(IsContainer, IsDS, GenericAcl.AclRevisionDS, 1);
                //_securityDescriptor.AddControlFlags(ControlFlags.SystemAclPresent);
                SecurityDescriptor.AddSystemAcl(GenericAcl.AclRevisionDS, 1);
            }
            else if ((modification == AccessControlModification.Add || modification == AccessControlModification.Set || modification == AccessControlModification.Reset) &&
                     (rule.ObjectFlags != ObjectAceFlags.None))
            {
                //
                // This will result in an object ace being added to the sacl, so the sacl revision must be AclRevisionDS
                //
                if (SecurityDescriptor.SystemAcl.Revision < GenericAcl.AclRevisionDS)
                {
                    //
                    // we need to create a new sacl with the same aces as the existing one but the revision should be AclRevisionDS
                    //
                    byte[] binaryForm = new byte[SecurityDescriptor.SystemAcl.BinaryLength];
                    SecurityDescriptor.SystemAcl.GetBinaryForm(binaryForm, 0);
                    binaryForm[0] = GenericAcl.AclRevisionDS; // revision is the first byte of the binary form

                    SecurityDescriptor.SystemAcl = new SystemAcl(IsContainer, IsDS, new RawAcl(binaryForm, 0));
                }
            }

            SecurityIdentifier sid = rule.IdentityReference.Translate(typeof(SecurityIdentifier)) as SecurityIdentifier;

            switch (modification)
            {
            case AccessControlModification.Add:
                //_securityDescriptor.SystemAcl.AddAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                SecurityDescriptor.SystemAcl.AddAudit(sid, rule);
                break;

            case AccessControlModification.Set:
                //_securityDescriptor.SystemAcl.SetAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                SecurityDescriptor.SystemAcl.SetAudit(sid, rule);
                break;

            case AccessControlModification.Reset:
                SecurityDescriptor.SystemAcl.RemoveAudit(AuditFlags.Failure | AuditFlags.Success, sid, -1, InheritanceFlags.ContainerInherit, 0, ObjectAceFlags.None, Guid.Empty, Guid.Empty);
                //_securityDescriptor.SystemAcl.SetAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                SecurityDescriptor.SystemAcl.SetAudit(sid, rule);
                break;

            case AccessControlModification.Remove:
                //result = _securityDescriptor.SystemAcl.RemoveAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                result = SecurityDescriptor.SystemAcl.RemoveAudit(sid, rule);
                break;

            case AccessControlModification.RemoveAll:
                result = SecurityDescriptor.SystemAcl.RemoveAudit(AuditFlags.Failure | AuditFlags.Success, sid, -1, InheritanceFlags.ContainerInherit, 0, ObjectAceFlags.None, Guid.Empty, Guid.Empty);
                if (result == false)
                {
                    throw new InvalidOperationException(SR.InvalidOperation_RemoveFail);
                }

                break;

            case AccessControlModification.RemoveSpecific:
                //_securityDescriptor.SystemAcl.RemoveAuditSpecific(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                SecurityDescriptor.SystemAcl.RemoveAuditSpecific(sid, rule);
                break;

            default:
                throw new ArgumentOutOfRangeException(
                          nameof(modification),
                          SR.ArgumentOutOfRange_Enum);
            }

            modified            = result;
            AuditRulesModified |= modified;
            return(result);
        }
 protected bool RemoveAuditRule(ObjectAuditRule rule)
 {
     return(default(bool));
 }
Exemplo n.º 12
0
        protected override bool ModifyAudit(AccessControlModification modification, AuditRule rule, out bool modified)
        {
            if (null == rule)
            {
                throw new ArgumentNullException("rule");
            }

            ObjectAuditRule orule = rule as ObjectAuditRule;

            if (null == orule)
            {
                throw new ArgumentException("rule");
            }

            modified = true;

            WriteLock();
            try {
                switch (modification)
                {
                case AccessControlModification.Add:
                    if (null == descriptor.SystemAcl)
                    {
                        descriptor.SystemAcl = new SystemAcl(IsContainer, IsDS, 1);
                    }

                    descriptor.SystemAcl.AddAudit(orule.AuditFlags,
                                                  SidFromIR(orule.IdentityReference),
                                                  orule.AccessMask,
                                                  orule.InheritanceFlags,
                                                  orule.PropagationFlags,
                                                  orule.ObjectFlags,
                                                  orule.ObjectType,
                                                  orule.InheritedObjectType);
                    break;

                case AccessControlModification.Set:
                    if (null == descriptor.SystemAcl)
                    {
                        descriptor.SystemAcl = new SystemAcl(IsContainer, IsDS, 1);
                    }

                    descriptor.SystemAcl.SetAudit(orule.AuditFlags,
                                                  SidFromIR(orule.IdentityReference),
                                                  orule.AccessMask,
                                                  orule.InheritanceFlags,
                                                  orule.PropagationFlags,
                                                  orule.ObjectFlags,
                                                  orule.ObjectType,
                                                  orule.InheritedObjectType);
                    break;

                case AccessControlModification.Reset:
                    break;

                case AccessControlModification.Remove:
                    if (null == descriptor.SystemAcl)
                    {
                        modified = false;
                    }
                    else
                    {
                        modified = descriptor.SystemAcl.RemoveAudit(orule.AuditFlags,
                                                                    SidFromIR(orule.IdentityReference),
                                                                    orule.AccessMask,
                                                                    orule.InheritanceFlags,
                                                                    orule.PropagationFlags,
                                                                    orule.ObjectFlags,
                                                                    orule.ObjectType,
                                                                    orule.InheritedObjectType);
                    }
                    break;

                case AccessControlModification.RemoveAll:
                    PurgeAuditRules(orule.IdentityReference);
                    break;

                case AccessControlModification.RemoveSpecific:
                    if (null != descriptor.SystemAcl)
                    {
                        descriptor.SystemAcl.RemoveAuditSpecific(orule.AuditFlags,
                                                                 SidFromIR(orule.IdentityReference),
                                                                 orule.AccessMask,
                                                                 orule.InheritanceFlags,
                                                                 orule.PropagationFlags,
                                                                 orule.ObjectFlags,
                                                                 orule.ObjectType,
                                                                 orule.InheritedObjectType);
                    }
                    break;

                default:
                    throw new ArgumentOutOfRangeException("modification");
                }

                if (modified)
                {
                    AuditRulesModified = true;
                }
            } finally {
                WriteUnlock();
            }

            return(modified);
        }
 protected void AddAuditRule(ObjectAuditRule rule)
 {
 }
Exemplo n.º 14
0
 protected void AddAuditRule(ObjectAuditRule rule)
 {
     throw new NotImplementedException();
 }
 protected void RemoveAuditRuleSpecific(ObjectAuditRule rule)
 {
 }
 protected void SetAuditRule(ObjectAuditRule rule)
 {
 }
 protected void AddAuditRule(ObjectAuditRule rule)
 {
 }
 protected void RemoveAuditRuleSpecific(ObjectAuditRule rule)
 {
 }
 protected void RemoveAuditRuleAll(ObjectAuditRule rule)
 {
 }
 protected bool RemoveAuditRule(ObjectAuditRule rule)
 {
   return default(bool);
 }
Exemplo n.º 21
0
        //
        // Modifies the SACL
        //
        private bool ModifyAudit(AccessControlModification modification, ObjectAuditRule rule, out bool modified)
        {
            bool result = true;

            if (_securityDescriptor.SystemAcl == null)
            {
                if (modification == AccessControlModification.Remove || modification == AccessControlModification.RemoveAll || modification == AccessControlModification.RemoveSpecific)
                {
                    modified = false;
                    return result;
                }

                //_securityDescriptor.SystemAcl = new SystemAcl(IsContainer, IsDS, GenericAcl.AclRevisionDS, 1);
                //_securityDescriptor.AddControlFlags(ControlFlags.SystemAclPresent);
                _securityDescriptor.AddSystemAcl(GenericAcl.AclRevisionDS, 1);
            }
            else if ((modification == AccessControlModification.Add || modification == AccessControlModification.Set || modification == AccessControlModification.Reset) &&
                        (rule.ObjectFlags != ObjectAceFlags.None))
            {
                //
                // This will result in an object ace being added to the sacl, so the sacl revision must be AclRevisionDS
                //
                if (_securityDescriptor.SystemAcl.Revision < GenericAcl.AclRevisionDS)
                {
                    //
                    // we need to create a new sacl with the same aces as the existing one but the revision should be AclRevisionDS
                    //
                    byte[] binaryForm = new byte[_securityDescriptor.SystemAcl.BinaryLength];
                    _securityDescriptor.SystemAcl.GetBinaryForm(binaryForm, 0);
                    binaryForm[0] = GenericAcl.AclRevisionDS; // revision is the first byte of the binary form

                    _securityDescriptor.SystemAcl = new SystemAcl(IsContainer, IsDS, new RawAcl(binaryForm, 0));
                }
            }

            SecurityIdentifier sid = rule.IdentityReference.Translate(typeof(SecurityIdentifier)) as SecurityIdentifier;

            switch (modification)
            {
                case AccessControlModification.Add:
                    //_securityDescriptor.SystemAcl.AddAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                    _securityDescriptor.SystemAcl.AddAudit(sid, rule);
                    break;

                case AccessControlModification.Set:
                    //_securityDescriptor.SystemAcl.SetAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                    _securityDescriptor.SystemAcl.SetAudit(sid, rule);
                    break;

                case AccessControlModification.Reset:
                    _securityDescriptor.SystemAcl.RemoveAudit(AuditFlags.Failure | AuditFlags.Success, sid, -1, InheritanceFlags.ContainerInherit, 0, ObjectAceFlags.None, Guid.Empty, Guid.Empty);
                    //_securityDescriptor.SystemAcl.SetAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                    _securityDescriptor.SystemAcl.SetAudit(sid, rule);
                    break;

                case AccessControlModification.Remove:
                    //result = _securityDescriptor.SystemAcl.RemoveAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                    result = _securityDescriptor.SystemAcl.RemoveAudit(sid, rule);
                    break;

                case AccessControlModification.RemoveAll:
                    result = _securityDescriptor.SystemAcl.RemoveAudit(AuditFlags.Failure | AuditFlags.Success, sid, -1, InheritanceFlags.ContainerInherit, 0, ObjectAceFlags.None, Guid.Empty, Guid.Empty);
                    if (result == false)
                    {
                        Debug.Assert(false, "Invalid operation");
                        throw new Exception();
                    }

                    break;

                case AccessControlModification.RemoveSpecific:
                    //_securityDescriptor.SystemAcl.RemoveAuditSpecific(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                    _securityDescriptor.SystemAcl.RemoveAuditSpecific(sid, rule);
                    break;

                default:
                    throw new ArgumentOutOfRangeException(
                        "modification",
                        SR.ArgumentOutOfRange_Enum);
            }

            modified = result;
            AuditRulesModified |= modified;
            return result;
        }
Exemplo n.º 22
0
 public bool RemoveAudit(SecurityIdentifier sid, ObjectAuditRule rule)
 {
     return(RemoveAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType));
 }
Exemplo n.º 23
0
 protected bool RemoveAuditRule(ObjectAuditRule rule)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 24
0
 public void RemoveAuditSpecific(SecurityIdentifier sid, ObjectAuditRule rule)
 {
     RemoveAuditSpecific(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
 }
Exemplo n.º 25
0
 public new void RemoveAuditRuleSpecific(ObjectAuditRule rule)
 {
     base.RemoveAuditRuleSpecific(rule);
 }
Exemplo n.º 26
0
 public void AddAudit(SecurityIdentifier sid, ObjectAuditRule rule)
 {
     AddAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
 }
Exemplo n.º 27
0
        protected void SetAuditRule(ObjectAuditRule rule)
        {
            bool modified;

            ModifyAudit(AccessControlModification.Set, rule, out modified);
        }
Exemplo n.º 28
0
        private bool ModifyAudit(AccessControlModification modification, ObjectAuditRule rule, out bool modified)
        {
            bool flag = true;

            if (this._securityDescriptor.SystemAcl == null)
            {
                if (modification == AccessControlModification.Remove || modification == AccessControlModification.RemoveAll || modification == AccessControlModification.RemoveSpecific)
                {
                    modified = false;
                    return(flag);
                }
                this._securityDescriptor.SystemAcl = new SystemAcl(this.IsContainer, this.IsDS, GenericAcl.AclRevisionDS, 1);
                this._securityDescriptor.AddControlFlags(ControlFlags.SystemAclPresent);
            }
            else if ((modification == AccessControlModification.Add || modification == AccessControlModification.Set || modification == AccessControlModification.Reset) && (rule.ObjectFlags != ObjectAceFlags.None && (int)this._securityDescriptor.SystemAcl.Revision < (int)GenericAcl.AclRevisionDS))
            {
                byte[] binaryForm = new byte[this._securityDescriptor.SystemAcl.BinaryLength];
                this._securityDescriptor.SystemAcl.GetBinaryForm(binaryForm, 0);
                binaryForm[0] = GenericAcl.AclRevisionDS;
                this._securityDescriptor.SystemAcl = new SystemAcl(this.IsContainer, this.IsDS, new RawAcl(binaryForm, 0));
            }
            SecurityIdentifier sid = rule.IdentityReference.Translate(typeof(SecurityIdentifier)) as SecurityIdentifier;

            switch (modification)
            {
            case AccessControlModification.Add:
                this._securityDescriptor.SystemAcl.AddAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                break;

            case AccessControlModification.Set:
                this._securityDescriptor.SystemAcl.SetAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                break;

            case AccessControlModification.Reset:
                this._securityDescriptor.SystemAcl.RemoveAudit(AuditFlags.Success | AuditFlags.Failure, sid, -1, InheritanceFlags.ContainerInherit, PropagationFlags.None, ObjectAceFlags.None, Guid.Empty, Guid.Empty);
                this._securityDescriptor.SystemAcl.SetAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                break;

            case AccessControlModification.Remove:
                flag = this._securityDescriptor.SystemAcl.RemoveAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                break;

            case AccessControlModification.RemoveAll:
                flag = this._securityDescriptor.SystemAcl.RemoveAudit(AuditFlags.Success | AuditFlags.Failure, sid, -1, InheritanceFlags.ContainerInherit, PropagationFlags.None, ObjectAceFlags.None, Guid.Empty, Guid.Empty);
                if (!flag)
                {
                    throw new SystemException();
                }
                break;

            case AccessControlModification.RemoveSpecific:
                this._securityDescriptor.SystemAcl.RemoveAuditSpecific(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                break;

            default:
                throw new ArgumentOutOfRangeException("modification", Environment.GetResourceString("ArgumentOutOfRange_Enum"));
            }
            modified = flag;
            this.AuditRulesModified = this.AuditRulesModified | modified;
            return(flag);
        }
        private bool ModifyAudit(AccessControlModification modification, ObjectAuditRule rule, out bool modified)
        {
            bool flag = true;
            if (base._securityDescriptor.SystemAcl == null)
            {
                if (((modification == AccessControlModification.Remove) || (modification == AccessControlModification.RemoveAll)) || (modification == AccessControlModification.RemoveSpecific))
                {
                    modified = false;
                    return flag;
                }
                base._securityDescriptor.SystemAcl = new SystemAcl(base.IsContainer, base.IsDS, GenericAcl.AclRevisionDS, 1);
                base._securityDescriptor.AddControlFlags(ControlFlags.SystemAclPresent);
            }
            else if ((((modification == AccessControlModification.Add) || (modification == AccessControlModification.Set)) || (modification == AccessControlModification.Reset)) && ((rule.ObjectFlags != ObjectAceFlags.None) && (base._securityDescriptor.SystemAcl.Revision < GenericAcl.AclRevisionDS)))
            {
                byte[] binaryForm = new byte[base._securityDescriptor.SystemAcl.BinaryLength];
                base._securityDescriptor.SystemAcl.GetBinaryForm(binaryForm, 0);
                binaryForm[0] = GenericAcl.AclRevisionDS;
                base._securityDescriptor.SystemAcl = new SystemAcl(base.IsContainer, base.IsDS, new RawAcl(binaryForm, 0));
            }
            SecurityIdentifier sid = rule.IdentityReference.Translate(typeof(SecurityIdentifier)) as SecurityIdentifier;
            switch (modification)
            {
                case AccessControlModification.Add:
                    base._securityDescriptor.SystemAcl.AddAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                    break;

                case AccessControlModification.Set:
                    base._securityDescriptor.SystemAcl.SetAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                    break;

                case AccessControlModification.Reset:
                    base._securityDescriptor.SystemAcl.RemoveAudit(AuditFlags.Failure | AuditFlags.Success, sid, -1, InheritanceFlags.ContainerInherit, PropagationFlags.None, ObjectAceFlags.None, Guid.Empty, Guid.Empty);
                    base._securityDescriptor.SystemAcl.SetAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                    break;

                case AccessControlModification.Remove:
                    flag = base._securityDescriptor.SystemAcl.RemoveAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                    break;

                case AccessControlModification.RemoveAll:
                    flag = base._securityDescriptor.SystemAcl.RemoveAudit(AuditFlags.Failure | AuditFlags.Success, sid, -1, InheritanceFlags.ContainerInherit, PropagationFlags.None, ObjectAceFlags.None, Guid.Empty, Guid.Empty);
                    if (!flag)
                    {
                        throw new SystemException();
                    }
                    break;

                case AccessControlModification.RemoveSpecific:
                    base._securityDescriptor.SystemAcl.RemoveAuditSpecific(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
                    break;

                default:
                    throw new ArgumentOutOfRangeException("modification", Environment.GetResourceString("ArgumentOutOfRange_Enum"));
            }
            modified = flag;
            base.AuditRulesModified |= modified;
            return flag;
        }
 protected void RemoveAuditRuleAll(ObjectAuditRule rule)
 {
 }
 protected bool RemoveAuditRule(ObjectAuditRule rule)
 {
     bool flag2;
     if (rule == null)
     {
         throw new ArgumentNullException("rule");
     }
     base.WriteLock();
     try
     {
         bool flag;
         flag2 = this.ModifyAudit(AccessControlModification.Remove, rule, out flag);
     }
     finally
     {
         base.WriteUnlock();
     }
     return flag2;
 }
Exemplo n.º 32
0
		protected bool RemoveAuditRule (ObjectAuditRule rule)
		{
			throw new NotImplementedException ();
		}
Exemplo n.º 33
0
		protected void SetAuditRule (ObjectAuditRule rule)
		{
			bool modified;
			ModifyAudit (AccessControlModification.Set, rule, out modified);
		}
Exemplo n.º 34
0
		protected void RemoveAuditRuleSpecific (ObjectAuditRule rule)
		{
			throw new NotImplementedException ();
		}
Exemplo n.º 35
0
 public void AddAudit(SecurityIdentifier sid, ObjectAuditRule rule)
 {
     AddAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
 }
Exemplo n.º 36
0
		protected void AddAuditRule (ObjectAuditRule rule)
		{
			throw new NotImplementedException ();
		}
Exemplo n.º 37
0
 public void RemoveAuditSpecific(SecurityIdentifier sid, ObjectAuditRule rule)
 {
     RemoveAuditSpecific(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
 }
Exemplo n.º 38
0
 public new void SetAuditRule(ObjectAuditRule rule)
 {
     base.SetAuditRule(rule);
 }
Exemplo n.º 39
0
        protected void RemoveAuditRuleSpecific(ObjectAuditRule rule)
        {
            if (rule == null)
            {
                throw new ArgumentNullException("rule");
            }
            Contract.EndContractBlock();

            WriteLock();

            try
            {
                bool modified;
                ModifyAudit(AccessControlModification.RemoveSpecific, rule, out modified);
            }
            finally
            {
                WriteUnlock();
            }
        }
Exemplo n.º 40
0
		protected void RemoveAuditRuleSpecific (ObjectAuditRule rule)
		{
			bool modified;
			ModifyAudit (AccessControlModification.RemoveSpecific, rule, out modified);
		}
Exemplo n.º 41
0
 protected void RemoveAuditRuleSpecific(ObjectAuditRule rule)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 42
0
        protected bool RemoveAuditRule(ObjectAuditRule rule)
        {
            bool modified;

            return(ModifyAudit(AccessControlModification.Remove, rule, out modified));
        }
Exemplo n.º 43
0
 public new void RemoveAuditRuleAll(ObjectAuditRule rule)
 {
     base.RemoveAuditRuleAll(rule);
 }
Exemplo n.º 44
0
        protected void RemoveAuditRuleSpecific(ObjectAuditRule rule)
        {
            bool modified;

            ModifyAudit(AccessControlModification.RemoveSpecific, rule, out modified);
        }
Exemplo n.º 45
0
 public new bool RemoveAuditRule(ObjectAuditRule rule)
 {
     return(base.RemoveAuditRule(rule));
 }
 protected void SetAuditRule(ObjectAuditRule rule)
 {
 }
Exemplo n.º 47
0
 public new void AddAuditRule(ObjectAuditRule rule)
 {
     base.AddAuditRule(rule);
 }
Exemplo n.º 48
0
		protected bool RemoveAuditRule (ObjectAuditRule rule)
		{
			bool modified;
			return ModifyAudit (AccessControlModification.Remove, rule, out modified);
		}