protected override void ApplyModification(ActiveDirectoryAccessRule[] modifiedAces) { TaskLogger.LogEnter(); if (this.trustee != null) { List <ActiveDirectoryAccessRule> list = new List <ActiveDirectoryAccessRule>(); foreach (SecurityIdentifier identity in ((IADSecurityPrincipal)this.trustee).SidHistory) { foreach (RecipientAccessRight right in base.AccessRights) { list.Add(new ActiveDirectoryAccessRule(identity, ActiveDirectoryRights.ExtendedRight, AccessControlType.Allow, RecipientPermissionHelper.GetRecipientAccessRightGuid(right), this.GetInheritanceType(), Guid.Empty)); } } if (list.Count > 0) { list.AddRange(modifiedAces); modifiedAces = list.ToArray(); } } DirectoryCommon.RemoveAces(new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.TaskWarningLoggingDelegate(this.WriteWarning), new Task.ErrorLoggerDelegate(base.WriteError), this.DataObject, modifiedAces); TaskLogger.LogExit(); }
protected override void ApplyModification(ADRawEntry modifiedObject, ActiveDirectoryAccessRule[] modifiedAces) { DirectoryCommon.RemoveAces(new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.TaskWarningLoggingDelegate(this.WriteWarning), new Task.ErrorLoggerDelegate(this.WriteErrorPerObject), base.GetWritableSession(modifiedObject.Id), modifiedObject.Id, modifiedAces); }