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

◆ RemoveQualifiedAcesSpecific()

void System.Security.AccessControl.CommonAcl.RemoveQualifiedAcesSpecific ( SecurityIdentifier sid,
AceQualifier qualifier,
int accessMask,
AceFlags flags,
ObjectAceFlags objectFlags,
Guid objectType,
Guid inheritedObjectType )
inlinepackageinherited

Definition at line 1062 of file CommonAcl.cs.

1063 {
1064 if (accessMask == 0)
1065 {
1066 throw new ArgumentException(System.SR.Argument_ArgumentZero, "accessMask");
1067 }
1068 if (qualifier == AceQualifier.SystemAudit && (flags & AceFlags.AuditFlags) == 0)
1069 {
1071 }
1072 if (sid == null)
1073 {
1074 throw new ArgumentNullException("sid");
1075 }
1077 for (int i = 0; i < Count; i++)
1078 {
1079 QualifiedAce qualifiedAce = _acl[i] as QualifiedAce;
1080 if (qualifiedAce == null || (qualifiedAce.AceFlags & AceFlags.Inherited) != 0 || qualifiedAce.AceQualifier != qualifier || qualifiedAce.SecurityIdentifier != sid || qualifiedAce.AceFlags != flags || qualifiedAce.AccessMask != accessMask)
1081 {
1082 continue;
1083 }
1084 if (IsDS)
1085 {
1086 if (qualifiedAce is ObjectAce objectAce && objectFlags != 0)
1087 {
1088 if (!objectAce.ObjectTypesMatch(objectFlags, objectType) || !objectAce.InheritedObjectTypesMatch(objectFlags, inheritedObjectType))
1089 {
1090 continue;
1091 }
1092 }
1093 else if (qualifiedAce is ObjectAce || objectFlags != 0)
1094 {
1095 continue;
1096 }
1097 }
1098 _acl.RemoveAce(i);
1099 i--;
1100 }
1102 }
static string Arg_EnumAtLeastOneFlag
Definition SR.cs:44
static string Argument_ArgumentZero
Definition SR.cs:52
Definition SR.cs:7

References System.Security.AccessControl.CommonAcl._acl, System.Security.AccessControl.KnownAce.AccessMask, System.Security.AccessControl.GenericAce.AceFlags, System.Security.AccessControl.QualifiedAce.AceQualifier, System.SR.Arg_EnumAtLeastOneFlag, System.SR.Argument_ArgumentZero, System.Security.AccessControl.CommonAcl.Count, System.Security.AccessControl.CommonAcl.IsDS, System.Security.AccessControl.CommonAcl.OnAclModificationTried(), System.Security.AccessControl.RawAcl.RemoveAce(), System.Security.AccessControl.KnownAce.SecurityIdentifier, and System.Security.AccessControl.CommonAcl.ThrowIfNotCanonical().

Referenced by System.Security.AccessControl.DiscretionaryAcl.RemoveAccessSpecific(), System.Security.AccessControl.DiscretionaryAcl.RemoveAccessSpecific(), System.Security.AccessControl.SystemAcl.RemoveAuditSpecific(), and System.Security.AccessControl.SystemAcl.RemoveAuditSpecific().