Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ RemoveAccessRule() [3/3]

bool System.Security.AccessControl.FileSystemSecurity.RemoveAccessRule ( FileSystemAccessRule rule)
inline

Definition at line 132 of file FileSystemSecurity.cs.

133 {
134 if (rule == null)
135 {
136 throw new ArgumentNullException("rule");
137 }
138 AuthorizationRuleCollection accessRules = GetAccessRules(includeExplicit: true, includeInherited: true, rule.IdentityReference.GetType());
139 for (int i = 0; i < accessRules.Count; i++)
140 {
141 if (accessRules[i] is FileSystemAccessRule fileSystemAccessRule && fileSystemAccessRule.FileSystemRights == rule.FileSystemRights && fileSystemAccessRule.IdentityReference == rule.IdentityReference && fileSystemAccessRule.AccessControlType == rule.AccessControlType)
142 {
143 return RemoveAccessRule((AccessRule)rule);
144 }
145 }
146 FileSystemAccessRule rule2 = new FileSystemAccessRule(rule.IdentityReference, FileSystemAccessRule.AccessMaskFromRights(rule.FileSystemRights, AccessControlType.Deny), rule.IsInherited, rule.InheritanceFlags, rule.PropagationFlags, rule.AccessControlType);
147 return RemoveAccessRule((AccessRule)rule2);
148 }
AuthorizationRuleCollection GetAccessRules(bool includeExplicit, bool includeInherited, Type targetType)

References System.Security.AccessControl.AccessRule< T >.AccessControlType, System.Security.AccessControl.FileSystemAccessRule.AccessMaskFromRights(), System.Collections.ReadOnlyCollectionBase.Count, System.Security.AccessControl.FileSystemAccessRule.FileSystemRights, System.Security.AccessControl.CommonObjectSecurity.GetAccessRules(), System.Security.AccessControl.AuthorizationRule.IdentityReference, System.Security.AccessControl.AuthorizationRule.InheritanceFlags, System.Security.AccessControl.AuthorizationRule.IsInherited, System.Security.AccessControl.AuthorizationRule.PropagationFlags, and System.Security.AccessControl.FileSystemSecurity.RemoveAccessRule().

Referenced by System.Security.AccessControl.FileSystemSecurity.RemoveAccessRule().