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

◆ RemoveAccessRuleSpecific() [3/3]

void System.IO.Pipes.PipeSecurity.RemoveAccessRuleSpecific ( PipeAccessRule rule)
inline

Definition at line 74 of file PipeSecurity.cs.

75 {
76 if (rule == null)
77 {
78 throw new ArgumentNullException("rule");
79 }
80 AuthorizationRuleCollection accessRules = GetAccessRules(includeExplicit: true, includeInherited: true, rule.IdentityReference.GetType());
81 for (int i = 0; i < accessRules.Count; i++)
82 {
83 if (accessRules[i] is PipeAccessRule pipeAccessRule && pipeAccessRule.PipeAccessRights == rule.PipeAccessRights && pipeAccessRule.IdentityReference == rule.IdentityReference && pipeAccessRule.AccessControlType == rule.AccessControlType)
84 {
86 return;
87 }
88 }
89 if (rule.PipeAccessRights != PipeAccessRights.FullControl)
90 {
91 RemoveAccessRuleSpecific((AccessRule)new PipeAccessRule(rule.IdentityReference, PipeAccessRule.AccessMaskFromRights(rule.PipeAccessRights, AccessControlType.Deny), isInherited: false, rule.AccessControlType));
92 }
93 else
94 {
96 }
97 }
void RemoveAccessRuleSpecific(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.RemoveAccessRuleSpecific().

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