ObjectSecurity.SetAccessRuleProtection(Boolean, Boolean) Method

Definition

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Sets or removes protection of the access rules associated with this ObjectSecurity object. Protected access rules cannot be modified by parent objects through inheritance.

C#
public void SetAccessRuleProtection(bool isProtected, bool preserveInheritance);

Parameters

isProtected
Boolean

true to protect the access rules associated with this ObjectSecurity object from inheritance; false to allow inheritance.

preserveInheritance
Boolean

true to preserve inherited access rules; false to remove inherited access rules. This parameter is ignored if isProtected is false.

Exceptions

This method attempts to remove inherited rules from a non-canonical Discretionary Access Control List (DACL).

Remarks

When you call the method with isProtected=true and preserveInheritance=true, you need to walk the new ACL of the object and check for DENY type ACEs. For a canonically sorted DACL, the DENY ACEs must appear in the front of the DACL. For more information on the canonical ordering of ACLs, see Order of ACEs in a DACL.

Applies to

Product Versions
.NET Core 1.0, Core 1.1, 6 (package-provided), 6, 7 (package-provided), 7, 8 (package-provided), 8, 9 (package-provided), 9, 10 (package-provided), 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
Windows Desktop 3.0, 3.1, 5