private static bool InheritsToAtLeastAsMany(ActiveDirectorySecurityInheritance inh1, ActiveDirectorySecurityInheritance inh2) { if (inh1 == inh2) { return(true); } switch (inh2) { case ActiveDirectorySecurityInheritance.None: return(false); case ActiveDirectorySecurityInheritance.All: return(true); case ActiveDirectorySecurityInheritance.Descendents: return(inh1 == ActiveDirectorySecurityInheritance.Children); case ActiveDirectorySecurityInheritance.SelfAndChildren: return(inh1 == ActiveDirectorySecurityInheritance.None || inh1 == ActiveDirectorySecurityInheritance.Children); case ActiveDirectorySecurityInheritance.Children: return(false); default: return(false); } }
internal static ActiveDirectorySecurityInheritance GetEffectiveInheritanceFlags(InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags) { ActiveDirectorySecurityInheritance activeDirectorySecurityInheritance = ActiveDirectorySecurityInheritance.None; if ((inheritanceFlags & InheritanceFlags.ContainerInherit) != InheritanceFlags.None) { PropagationFlags propagationFlag = propagationFlags; if (propagationFlag == PropagationFlags.None) { activeDirectorySecurityInheritance = ActiveDirectorySecurityInheritance.All; return(activeDirectorySecurityInheritance); } else if (propagationFlag == PropagationFlags.NoPropagateInherit) { activeDirectorySecurityInheritance = ActiveDirectorySecurityInheritance.SelfAndChildren; return(activeDirectorySecurityInheritance); } else if (propagationFlag == PropagationFlags.InheritOnly) { activeDirectorySecurityInheritance = ActiveDirectorySecurityInheritance.Descendents; return(activeDirectorySecurityInheritance); } else if (propagationFlag == (PropagationFlags.NoPropagateInherit | PropagationFlags.InheritOnly)) { activeDirectorySecurityInheritance = ActiveDirectorySecurityInheritance.Children; return(activeDirectorySecurityInheritance); } throw new ArgumentException("propagationFlags"); } return(activeDirectorySecurityInheritance); }
internal static PropagationFlags GetPropagationFlags(ActiveDirectorySecurityInheritance inheritanceType) { if ((inheritanceType < ActiveDirectorySecurityInheritance.None) || (inheritanceType > ActiveDirectorySecurityInheritance.Children)) { throw new InvalidEnumArgumentException("inheritanceType", (int)inheritanceType, typeof(ActiveDirectorySecurityInheritance)); } return(ITToPF[(int)inheritanceType]); }
internal static PropagationFlags GetPropagationFlags(ActiveDirectorySecurityInheritance inheritanceType) { if ((inheritanceType < ActiveDirectorySecurityInheritance.None) || (inheritanceType > ActiveDirectorySecurityInheritance.Children)) { throw new InvalidEnumArgumentException("inheritanceType", (int) inheritanceType, typeof(ActiveDirectorySecurityInheritance)); } return ITToPF[(int) inheritanceType]; }
internal static InheritanceFlags GetInheritanceFlags(ActiveDirectorySecurityInheritance inheritanceType) { if (inheritanceType < ActiveDirectorySecurityInheritance.None || inheritanceType > ActiveDirectorySecurityInheritance.Children) { throw new InvalidEnumArgumentException(nameof(inheritanceType), (int)inheritanceType, typeof(ActiveDirectorySecurityInheritance)); } return(ITToIF[(int)inheritanceType]); }
internal static InheritanceFlags GetInheritanceFlags(ActiveDirectorySecurityInheritance inheritanceType) { if (inheritanceType < ActiveDirectorySecurityInheritance.None || inheritanceType > ActiveDirectorySecurityInheritance.Children) { throw new InvalidEnumArgumentException("inheritanceType", (int)inheritanceType, typeof(ActiveDirectorySecurityInheritance)); } else { return ActiveDirectoryInheritanceTranslator.ITToIF[(int)inheritanceType]; } }
public ExtendedRightAccessRule( IdentityReference identity, AccessControlType type, ActiveDirectorySecurityInheritance inheritanceType) : base( identity, (int)ActiveDirectoryRights.ExtendedRight, type, Guid.Empty, // all extended rights false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), Guid.Empty) { }
public ListChildrenAccessRule( IdentityReference identity, AccessControlType type, ActiveDirectorySecurityInheritance inheritanceType) : base( identity, (int)ActiveDirectoryRights.ListChildren, type, Guid.Empty, false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), Guid.Empty) { }
public DeleteChildAccessRule( IdentityReference identity, AccessControlType type, ActiveDirectorySecurityInheritance inheritanceType) : base( identity, (int)ActiveDirectoryRights.DeleteChild, type, Guid.Empty, // all child objects false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), Guid.Empty) { }
public PropertyAccessRule( IdentityReference identity, AccessControlType type, PropertyAccess access, ActiveDirectorySecurityInheritance inheritanceType) : base( identity, (int)PropertyAccessTranslator.AccessMaskFromPropertyAccess(access), type, Guid.Empty, // all properties false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), Guid.Empty) { }
public ActiveDirectoryAccessRule( IdentityReference identity, ActiveDirectoryRights adRights, AccessControlType type, ActiveDirectorySecurityInheritance inheritanceType) : this( identity, ActiveDirectoryRightsTranslator.AccessMaskFromRights(adRights), type, Guid.Empty, false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), Guid.Empty) { }
public CreateChildAccessRule( IdentityReference identity, AccessControlType type, Guid childType, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base( identity, (int)ActiveDirectoryRights.CreateChild, type, childType, false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), inheritedObjectType) { }
public DeleteTreeAccessRule( IdentityReference identity, AccessControlType type, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base( identity, (int)ActiveDirectoryRights.DeleteTree, type, Guid.Empty, false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), inheritedObjectType) { }
public PropertySetAccessRule(IdentityReference identity, AccessControlType type, PropertyAccess access, Guid propertySetType, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base( identity, (int)PropertyAccessTranslator.AccessMaskFromPropertyAccess(access), type, propertySetType, false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), inheritedObjectType) { }
public ActiveDirectoryAuditRule( IdentityReference identity, ActiveDirectoryRights adRights, AuditFlags auditFlags, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : this( identity, ActiveDirectoryRightsTranslator.AccessMaskFromRights(adRights), auditFlags, Guid.Empty, false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), inheritedObjectType) { }
internal static ActiveDirectorySecurityInheritance GetEffectiveInheritanceFlags(InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags) { ActiveDirectorySecurityInheritance inheritanceType = ActiveDirectorySecurityInheritance.None; if ((inheritanceFlags & InheritanceFlags.ContainerInherit) != 0) { switch (propagationFlags) { case PropagationFlags.None: { inheritanceType = ActiveDirectorySecurityInheritance.All; break; } case PropagationFlags.InheritOnly: { inheritanceType = ActiveDirectorySecurityInheritance.Descendents; break; } case PropagationFlags.NoPropagateInherit: { inheritanceType = ActiveDirectorySecurityInheritance.SelfAndChildren; break; } case PropagationFlags.InheritOnly | PropagationFlags.NoPropagateInherit: { inheritanceType = ActiveDirectorySecurityInheritance.Children; break; } default: // // This should not happen. Indicates a problem with the // internal logic. // Debug.Fail("Invalid PropagationFlags value"); throw new ArgumentException("propagationFlags"); } } return(inheritanceType); }
internal static void DelegateOuToGroup(this DirectoryEntry ou, string domainName, string groupName) { IdentityReference nTAccount = new NTAccount(domainName, groupName); AccessControlType accessControlType = AccessControlType.Allow; Guid guid = new Guid("{BF967A9C-0DE6-11D0-A285-00AA003049E2}"); Guid guid1 = new Guid("{BF967AA5-0DE6-11D0-A285-00AA003049E2}"); Guid guid2 = new Guid("{BF967ABA-0DE6-11D0-A285-00AA003049E2}"); ActiveDirectoryRights activeDirectoryRight = ActiveDirectoryRights.CreateChild | ActiveDirectoryRights.DeleteChild; ActiveDirectorySecurityInheritance activeDirectorySecurityInheritance = ActiveDirectorySecurityInheritance.All; ou.ObjectSecurity.AddAccessRule(new ActiveDirectoryAccessRule(nTAccount, activeDirectoryRight, accessControlType, guid, activeDirectorySecurityInheritance)); ou.ObjectSecurity.AddAccessRule(new ActiveDirectoryAccessRule(nTAccount, activeDirectoryRight, accessControlType, guid1, activeDirectorySecurityInheritance)); ou.ObjectSecurity.AddAccessRule(new ActiveDirectoryAccessRule(nTAccount, activeDirectoryRight, accessControlType, guid2, activeDirectorySecurityInheritance)); ActiveDirectoryRights activeDirectoryRight1 = ActiveDirectoryRights.GenericAll; ActiveDirectorySecurityInheritance activeDirectorySecurityInheritance1 = ActiveDirectorySecurityInheritance.Descendents; ou.ObjectSecurity.AddAccessRule(new ActiveDirectoryAccessRule(nTAccount, activeDirectoryRight1, accessControlType, activeDirectorySecurityInheritance1, guid)); ou.ObjectSecurity.AddAccessRule(new ActiveDirectoryAccessRule(nTAccount, activeDirectoryRight1, accessControlType, activeDirectorySecurityInheritance1, guid1)); ou.ObjectSecurity.AddAccessRule(new ActiveDirectoryAccessRule(nTAccount, activeDirectoryRight1, accessControlType, activeDirectorySecurityInheritance1, guid2)); ou.CommitChanges(); }
internal static ActiveDirectorySecurityInheritance GetEffectiveInheritanceFlags(InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags) { ActiveDirectorySecurityInheritance none = ActiveDirectorySecurityInheritance.None; if ((inheritanceFlags & InheritanceFlags.ContainerInherit) == InheritanceFlags.None) { return(none); } switch (propagationFlags) { case PropagationFlags.None: return(ActiveDirectorySecurityInheritance.All); case PropagationFlags.NoPropagateInherit: return(ActiveDirectorySecurityInheritance.SelfAndChildren); case PropagationFlags.InheritOnly: return(ActiveDirectorySecurityInheritance.Descendents); case (PropagationFlags.InheritOnly | PropagationFlags.NoPropagateInherit): return(ActiveDirectorySecurityInheritance.Children); } throw new ArgumentException("propagationFlags"); }
public PropertySetAccessRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.AccessControlType type, PropertyAccess access, System.Guid propertySetType, ActiveDirectorySecurityInheritance inheritanceType) { }
public DeleteChildAccessRule( IdentityReference identity, AccessControlType type, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base( identity, (int)ActiveDirectoryRights.DeleteChild, type, Guid.Empty, // all child objects false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), inheritedObjectType) { }
public ExtendedRightAccessRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.AccessControlType type, System.Guid extendedRightType, ActiveDirectorySecurityInheritance inheritanceType, System.Guid inheritedObjectType) {}
public DeleteChildAccessRule(IdentityReference identity, AccessControlType type, Guid childType, ActiveDirectorySecurityInheritance inheritanceType) : base(identity, 2, type, childType, false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), Guid.Empty) { }
public ActiveDirectoryAuditRule(IdentityReference identity, System.DirectoryServices.ActiveDirectoryRights adRights, AuditFlags auditFlags, Guid objectType, ActiveDirectorySecurityInheritance inheritanceType) : this(identity, ActiveDirectoryRightsTranslator.AccessMaskFromRights(adRights), auditFlags, objectType, false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), Guid.Empty) { }
public PropertySetAccessRule (IdentityReference identity, AccessControlType type, PropertyAccess access, Guid propertySetType, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base(identity, (int)AccessControlType.Allow, type, propertySetType, false, InheritanceFlags.None, PropagationFlags.None, inheritedObjectType) { }
public ExtendedRightAccessRule(IdentityReference identity, AccessControlType type, Guid extendedRightType, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base(identity, 256, type, extendedRightType, false, InheritanceFlags.None, PropagationFlags.None, inheritedObjectType) { }
public ActiveDirectoryAccessRule(System.Security.Principal.IdentityReference identity, ActiveDirectoryRights adRights, System.Security.AccessControl.AccessControlType type, System.Guid objectType, ActiveDirectorySecurityInheritance inheritanceType) { }
public ExtendedRightAccessRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.AccessControlType type, Guid extendedRightType, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base(default(System.Security.Principal.IdentityReference), default(ActiveDirectoryRights), default(System.Security.AccessControl.AccessControlType)) { Contract.Requires(identity != null); }
public ActiveDirectoryAuditRule(IdentityReference identity, ActiveDirectoryRights adRights, AuditFlags auditFlags, Guid objectType, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : this(identity, (int)adRights, auditFlags, objectType, false, InheritanceFlags.None, PropagationFlags.None, inheritedObjectType) { }
public CreateChildAccessRule(IdentityReference identity, AccessControlType type, Guid childType, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base(identity, 1, type, childType, false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), inheritedObjectType) { }
public ActiveDirectoryAuditRule(System.Security.Principal.IdentityReference identity, ActiveDirectoryRights adRights, System.Security.AccessControl.AuditFlags auditFlags, ActiveDirectorySecurityInheritance inheritanceType) : base (default(System.Security.Principal.IdentityReference), default(int), default(bool), default(System.Security.AccessControl.InheritanceFlags), default(System.Security.AccessControl.PropagationFlags), default(Guid), default(Guid), default(System.Security.AccessControl.AuditFlags)) { Contract.Requires(identity != null); }
public ActiveDirectoryAccessRule(IdentityReference identity, System.DirectoryServices.ActiveDirectoryRights adRights, AccessControlType type, Guid objectType, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : this(identity, ActiveDirectoryRightsTranslator.AccessMaskFromRights(adRights), type, objectType, false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), inheritedObjectType) { }
public ActiveDirectoryAuditRule(System.Security.Principal.IdentityReference identity, ActiveDirectoryRights adRights, System.Security.AccessControl.AuditFlags auditFlags, ActiveDirectorySecurityInheritance inheritanceType, System.Guid inheritedObjectType) { }
public ListChildrenAccessRule (IdentityReference identity, AccessControlType type, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base(identity, 4, type, Guid.Empty, false, InheritanceFlags.None, PropagationFlags.None, inheritedObjectType) { }
public ActiveDirectoryAccessRule(IdentityReference identity, ActiveDirectoryRights adRights, AccessControlType type, Guid objectType, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : this(identity, (int)adRights, type, objectType, false, InheritanceFlags.None, PropagationFlags.None, inheritedObjectType) { }
public ExtendedRightAccessRule (IdentityReference identity, AccessControlType type, Guid extendedRightType, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base(identity, 256, type, extendedRightType, false, InheritanceFlags.None, PropagationFlags.None, inheritedObjectType) { }
public DeleteChildAccessRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.AccessControlType type, System.Guid childType, ActiveDirectorySecurityInheritance inheritanceType, System.Guid inheritedObjectType) {}
public DeleteTreeAccessRule(IdentityReference identity, AccessControlType type, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base(identity, 0x40, type, Guid.Empty, false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), inheritedObjectType) { }
public ExtendedRightAccessRule( IdentityReference identity, AccessControlType type, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base( identity, (int)ActiveDirectoryRights.ExtendedRight, type, Guid.Empty, // all extended rights false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), inheritedObjectType) { }
public PropertyAccessRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.AccessControlType type, PropertyAccess access, ActiveDirectorySecurityInheritance inheritanceType) : base (default(System.Security.Principal.IdentityReference), default(ActiveDirectoryRights), default(System.Security.AccessControl.AccessControlType)) { Contract.Requires(identity != null); }
public PropertyAccessRule(IdentityReference identity, AccessControlType type, PropertyAccess access, Guid propertyType, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base(identity, (int)AccessControlType.Allow, type, propertyType, false, InheritanceFlags.None, PropagationFlags.None, inheritedObjectType) { }
public ListChildrenAccessRule(IdentityReference identity, AccessControlType type, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base(identity, 4, type, Guid.Empty, false, InheritanceFlags.None, PropagationFlags.None, inheritedObjectType) { }
public ActiveDirectoryAccessRule(System.Security.Principal.IdentityReference identity, ActiveDirectoryRights adRights, System.Security.AccessControl.AccessControlType type, ActiveDirectorySecurityInheritance inheritanceType) {}
public PropertySetAccessRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.AccessControlType type, PropertyAccess access, Guid propertySetType, ActiveDirectorySecurityInheritance inheritanceType) : base(default(System.Security.Principal.IdentityReference), default(ActiveDirectoryRights), default(System.Security.AccessControl.AccessControlType)) { Contract.Requires(identity != null); }
public ExtendedRightAccessRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.AccessControlType type, Guid extendedRightType, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base (default(System.Security.Principal.IdentityReference), default(ActiveDirectoryRights), default(System.Security.AccessControl.AccessControlType)) { Contract.Requires(identity != null); }
public PropertyAccessRule(IdentityReference identity, AccessControlType type, PropertyAccess access, Guid propertyType, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base(identity, PropertyAccessTranslator.AccessMaskFromPropertyAccess(access), type, propertyType, false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), inheritedObjectType) { }
public ActiveDirectoryAuditRule(System.Security.Principal.IdentityReference identity, ActiveDirectoryRights adRights, System.Security.AccessControl.AuditFlags auditFlags, System.Guid objectType, ActiveDirectorySecurityInheritance inheritanceType, System.Guid inheritedObjectType) {}
public ExtendedRightAccessRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.AccessControlType type, System.Guid extendedRightType, ActiveDirectorySecurityInheritance inheritanceType, System.Guid inheritedObjectType) { }
public ExtendedRightAccessRule(IdentityReference identity, AccessControlType type, Guid extendedRightType, ActiveDirectorySecurityInheritance inheritanceType, Guid inheritedObjectType) : base(identity, 0x100, type, extendedRightType, false, ActiveDirectoryInheritanceTranslator.GetInheritanceFlags(inheritanceType), ActiveDirectoryInheritanceTranslator.GetPropagationFlags(inheritanceType), inheritedObjectType) { }
public DeleteChildAccessRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.AccessControlType type, ActiveDirectorySecurityInheritance inheritanceType) : base(default(System.Security.Principal.IdentityReference), default(ActiveDirectoryRights), default(System.Security.AccessControl.AccessControlType)) { Contract.Requires(identity != null); }
public DeleteTreeAccessRule(System.Security.Principal.IdentityReference identity, System.Security.AccessControl.AccessControlType type, ActiveDirectorySecurityInheritance inheritanceType) {}