7public abstract class ObjectSecurity
191 if (securityDescriptor ==
null)
203 _securityDescriptor.Owner = newOne.
Owner;
208 _securityDescriptor.Group = newOne.
Group;
219 _securityDescriptor.SystemAcl =
null;
232 _securityDescriptor.DiscretionaryAcl =
null;
269 if (enableOwnershipPrivilege)
271 privilege =
new Privilege(
"SeTakeOwnershipPrivilege");
280 Persist(name, includeSections);
317 if (identity ==
null)
352 if (identity ==
null)
370 if (identity ==
null)
388 if (identity ==
null)
457 if (sddlForm ==
null)
498 if (binaryForm ==
null)
555 return ModifyAudit(modification, rule, out modified);
576 : base(isContainer, resourceType, null, null)
581 : base(isContainer, resourceType, name, includeSections, null, null)
586 : base(isContainer, resourceType, name, includeSections, exceptionFromErrorCode, exceptionContext)
591 : base(isContainer, resourceType, safeHandle, includeSections, null, null)
596 : base(isContainer, resourceType, safeHandle, includeSections, exceptionFromErrorCode, exceptionContext)
602 return new AccessRule<T>(identityReference, accessMask, isInherited, inheritanceFlags, propagationFlags,
type);
607 return new AuditRule<T>(identityReference, accessMask, isInherited, inheritanceFlags, propagationFlags, flags);
613 if (base.AccessRulesModified)
617 if (base.AuditRulesModified)
621 if (base.OwnerModified)
625 if (base.GroupModified)
629 return accessControlSections;
639 bool flag2 = (base.AccessRulesModified =
false);
640 bool flag4 = (base.AuditRulesModified = flag2);
641 bool ownerModified = (base.GroupModified = flag4);
642 base.OwnerModified = ownerModified;
656 Persist(name, accessControlSectionsFromChanges);
657 bool flag2 = (base.AccessRulesModified =
false);
658 bool flag4 = (base.AuditRulesModified = flag2);
659 bool ownerModified = (base.GroupModified = flag4);
660 base.OwnerModified = ownerModified;
static Exception ByDesign
static string AccessControl_InvalidAccessRuleType
static string AccessControl_InvalidAuditRuleType
static string InvalidOperation_MustLockForReadOrWrite
static string InvalidOperation_MustLockForWrite
static string Arg_EnumAtLeastOneFlag
override ControlFlags ControlFlags
void PurgeAudit(SecurityIdentifier sid)
void UpdateControlFlags(ControlFlags flagsToUpdate, ControlFlags newFlags)
bool IsSystemAclCanonical
override? SecurityIdentifier Group
void SetDiscretionaryAclProtection(bool isProtected, bool preserveInheritance)
bool IsDiscretionaryAclCanonical
void PurgeAccessControl(SecurityIdentifier sid)
void SetSystemAclProtection(bool isProtected, bool preserveInheritance)
override? SecurityIdentifier Owner
string GetSddlForm(AccessControlSections includeSections)
void GetBinaryForm(byte[] binaryForm, int offset)
virtual void AddAuditRule(AuditRule< T > rule)
virtual void ResetAccessRule(AccessRule< T > rule)
override AuditRule AuditRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags)
virtual void RemoveAccessRuleSpecific(AccessRule< T > rule)
virtual bool ModifyAccessRule(AccessControlModification modification, AccessRule rule, out bool modified)
virtual void PurgeAuditRules(IdentityReference identity)
virtual void SetAuditRule(AuditRule< T > rule)
virtual bool ModifyAuditRule(AccessControlModification modification, AuditRule rule, out bool modified)
IdentityReference? GetOwner(Type targetType)
void Persist(SafeHandle handle)
bool AreAccessRulesCanonical
ObjectSecurity(CommonSecurityDescriptor securityDescriptor)
AuditRule AuditRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags)
void SetOwner(IdentityReference identity)
virtual bool RemoveAuditRule(AuditRule< T > rule)
bool AreAccessRulesProtected
virtual void RemoveAuditRuleAll(AuditRule< T > rule)
bool ModifyAudit(AccessControlModification modification, AuditRule rule, out bool modified)
IdentityReference? GetGroup(Type targetType)
void UpdateWithNewSecurityDescriptor(RawSecurityDescriptor newOne, AccessControlSections includeSections)
ObjectSecurity(bool isContainer, ResourceType resourceType)
void Persist(string name)
void SetSecurityDescriptorSddlForm(string sddlForm)
AccessRule AccessRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
readonly CommonSecurityDescriptor _securityDescriptor
void SetSecurityDescriptorBinaryForm(byte[] binaryForm)
virtual void PurgeAccessRules(IdentityReference identity)
void SetSecurityDescriptorBinaryForm(byte[] binaryForm, AccessControlSections includeSections)
readonly ReaderWriterLockSlim _lock
ObjectSecurity(bool isContainer, ResourceType resourceType, string? name, AccessControlSections includeSections, ExceptionFromErrorCode? exceptionFromErrorCode, object? exceptionContext)
bool AreAuditRulesProtected
virtual void Persist(bool enableOwnershipPrivilege, string name, AccessControlSections includeSections)
virtual void AddAccessRule(AccessRule< T > rule)
virtual bool RemoveAccessRule(AccessRule< T > rule)
bool ModifyAccess(AccessControlModification modification, AccessRule rule, out bool modified)
void SetAuditRuleProtection(bool isProtected, bool preserveInheritance)
ObjectSecurity(bool isContainer, ResourceType resourceType, SafeHandle? safeHandle, AccessControlSections includeSections, ExceptionFromErrorCode? exceptionFromErrorCode, object? exceptionContext)
void SetAccessRuleProtection(bool isProtected, bool preserveInheritance)
virtual void SetAccessRule(AccessRule< T > rule)
virtual void RemoveAuditRuleSpecific(AuditRule< T > rule)
virtual void Persist(SafeHandle handle, AccessControlSections includeSections)
bool AreAuditRulesCanonical
CommonSecurityDescriptor SecurityDescriptor
virtual void Persist(string name, AccessControlSections includeSections)
override AccessRule AccessRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
byte[] GetSecurityDescriptorBinaryForm()
AccessControlSections GetAccessControlSectionsFromChanges()
void SetGroup(IdentityReference identity)
virtual void RemoveAccessRuleAll(AccessRule< T > rule)
ObjectSecurity(bool isContainer, ResourceType resourceType, SafeHandle? safeHandle, AccessControlSections includeSections)
static bool IsSddlConversionSupported()
string GetSecurityDescriptorSddlForm(AccessControlSections includeSections)
ObjectSecurity(bool isContainer, bool isDS)
ObjectSecurity(bool isContainer, ResourceType resourceType, string? name, AccessControlSections includeSections)
void SetSecurityDescriptorSddlForm(string sddlForm, AccessControlSections includeSections)
override? SecurityIdentifier Group
override ControlFlags ControlFlags
override? SecurityIdentifier Owner
IdentityReference Translate(Type targetType)
override IdentityReference Translate(Type targetType)
virtual bool IsAssignableFrom([NotNullWhen(true)] Type? c)
AccessControlModification