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

◆ RemoveAccessRule() [3/3]

bool System.IO.Pipes.PipeSecurity.RemoveAccessRule ( PipeAccessRule rule)
inline

Definition at line 53 of file PipeSecurity.cs.

54 {
55 if (rule == null)
56 {
57 throw new ArgumentNullException("rule");
58 }
59 AuthorizationRuleCollection accessRules = GetAccessRules(includeExplicit: true, includeInherited: true, rule.IdentityReference.GetType());
60 for (int i = 0; i < accessRules.Count; i++)
61 {
62 if (accessRules[i] is PipeAccessRule pipeAccessRule && pipeAccessRule.PipeAccessRights == rule.PipeAccessRights && pipeAccessRule.IdentityReference == rule.IdentityReference && pipeAccessRule.AccessControlType == rule.AccessControlType)
63 {
64 return RemoveAccessRule((AccessRule)rule);
65 }
66 }
67 if (rule.PipeAccessRights != PipeAccessRights.FullControl)
68 {
69 return RemoveAccessRule((AccessRule)new PipeAccessRule(rule.IdentityReference, PipeAccessRule.AccessMaskFromRights(rule.PipeAccessRights, AccessControlType.Deny), isInherited: false, rule.AccessControlType));
70 }
71 return RemoveAccessRule((AccessRule)rule);
72 }
bool RemoveAccessRule(PipeAccessRule rule)
AuthorizationRuleCollection GetAccessRules(bool includeExplicit, bool includeInherited, Type targetType)

References System.Security.AccessControl.AccessRule< T >.AccessControlType, System.IO.Pipes.PipeAccessRule.AccessMaskFromRights(), System.Collections.ReadOnlyCollectionBase.Count, System.Security.AccessControl.CommonObjectSecurity.GetAccessRules(), System.Security.AccessControl.AuthorizationRule.IdentityReference, System.IO.Pipes.PipeAccessRule.PipeAccessRights, and System.IO.Pipes.PipeSecurity.RemoveAccessRule().

Referenced by System.IO.Pipes.PipeSecurity.RemoveAccessRule().