79 _rawSd.SystemAcl =
null;
145 [MemberNotNull(
"_rawSd")]
148 if (systemAcl !=
null && systemAcl.
IsContainer != isContainer)
152 if (discretionaryAcl !=
null && discretionaryAcl.
IsContainer != isContainer)
157 if (systemAcl !=
null && systemAcl.
IsDS != isDS)
161 if (discretionaryAcl !=
null && discretionaryAcl.
IsDS != isDS)
167 if (discretionaryAcl ==
null)
171 _dacl = discretionaryAcl;
173 controlFlags = ((systemAcl !=
null) ? (controlFlags |
ControlFlags.SystemAclPresent) : (controlFlags &
~ControlFlags.SystemAclPresent));
179 CreateFromParts(isContainer, isDS, flags, owner, group, systemAcl, discretionaryAcl);
183 : this(isContainer, isDS, rawSecurityDescriptor, trusted: false)
189 if (rawSecurityDescriptor ==
null)
193 CreateFromParts(isContainer, isDS, rawSecurityDescriptor.
ControlFlags, rawSecurityDescriptor.
Owner, rawSecurityDescriptor.
Group, (rawSecurityDescriptor.
SystemAcl ==
null) ?
null :
new SystemAcl(isContainer, isDS, rawSecurityDescriptor.
SystemAcl, trusted), (rawSecurityDescriptor.DiscretionaryAcl ==
null) ?
null :
new DiscretionaryAcl(isContainer, isDS, rawSecurityDescriptor.
DiscretionaryAcl, trusted));
213 if (!preserveInheritance &&
SystemAcl !=
null)
236 DiscretionaryAcl.EveryOneFullAccessForNullDacl =
false;
278 ControlFlags flags = newFlags | (_rawSd.ControlFlags & ~flagsToUpdate);
static string AccessControl_MustSpecifyNonDirectoryObjectAcl
static string AccessControl_MustSpecifyLeafObjectAcl
static string AccessControl_MustSpecifyContainerAcl
static string AccessControl_MustSpecifyDirectoryObjectAcl
void RemoveInheritedAces()
void Purge(SecurityIdentifier sid)
void AddControlFlags(ControlFlags flags)
void CreateFromParts(bool isContainer, bool isDS, ControlFlags flags, SecurityIdentifier owner, SecurityIdentifier group, SystemAcl systemAcl, DiscretionaryAcl discretionaryAcl)
void PurgeAudit(SecurityIdentifier sid)
void UpdateControlFlags(ControlFlags flagsToUpdate, ControlFlags newFlags)
bool IsSystemAclCanonical
CommonSecurityDescriptor(bool isContainer, bool isDS, byte[] binaryForm, int offset)
void RemoveControlFlags(ControlFlags flags)
RawSecurityDescriptor _rawSd
void AddDiscretionaryAcl(byte revision, int trusted)
override? SecurityIdentifier Group
CommonSecurityDescriptor(bool isContainer, bool isDS, string sddlForm)
override? GenericAcl GenericSacl
void SetDiscretionaryAclProtection(bool isProtected, bool preserveInheritance)
DiscretionaryAcl? DiscretionaryAcl
bool IsDiscretionaryAclPresent
CommonSecurityDescriptor(bool isContainer, bool isDS, RawSecurityDescriptor rawSecurityDescriptor)
void AddSystemAcl(byte revision, int trusted)
bool IsDiscretionaryAclCanonical
override? GenericAcl GenericDacl
void PurgeAccessControl(SecurityIdentifier sid)
void SetSystemAclProtection(bool isProtected, bool preserveInheritance)
CommonSecurityDescriptor(bool isContainer, bool isDS, ControlFlags flags, SecurityIdentifier? owner, SecurityIdentifier? group, SystemAcl? systemAcl, DiscretionaryAcl? discretionaryAcl)
override? SecurityIdentifier Owner
CommonSecurityDescriptor(bool isContainer, bool isDS, RawSecurityDescriptor rawSecurityDescriptor, bool trusted)
static DiscretionaryAcl CreateAllowEveryoneFullAccess(bool isDS, bool isContainer)
bool EveryOneFullAccessForNullDacl
override? SecurityIdentifier Group
override ControlFlags ControlFlags
void SetFlags(ControlFlags flags)
override? SecurityIdentifier Owner