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

◆ SetQualifiedAce()

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

Definition at line 860 of file CommonAcl.cs.

861 {
862 if (sid == null)
863 {
864 throw new ArgumentNullException("sid");
865 }
866 if (qualifier == AceQualifier.SystemAudit && (flags & AceFlags.AuditFlags) == 0)
867 {
869 }
870 if (accessMask == 0)
871 {
872 throw new ArgumentException(System.SR.Argument_ArgumentZero, "accessMask");
873 }
875 GenericAce ace = ((IsDS && objectFlags != 0) ? ((QualifiedAce)new ObjectAce(flags, qualifier, accessMask, sid, objectFlags, objectType, inheritedObjectType, isCallback: false, null)) : ((QualifiedAce)new CommonAce(flags, qualifier, accessMask, sid, isCallback: false, null)));
876 if (!InspectAce(ref ace, this is DiscretionaryAcl))
877 {
878 return;
879 }
880 for (int i = 0; i < Count; i++)
881 {
882 QualifiedAce qualifiedAce = _acl[i] as QualifiedAce;
883 if (!(qualifiedAce == null) && (qualifiedAce.AceFlags & AceFlags.Inherited) == 0 && qualifiedAce.AceQualifier == qualifier && !(qualifiedAce.SecurityIdentifier != sid))
884 {
885 _acl.RemoveAce(i);
886 i--;
887 }
888 }
889 _acl.InsertAce(_acl.Count, ace);
890 _isDirty = true;
892 }
static string Arg_EnumAtLeastOneFlag
Definition SR.cs:44
static string Argument_ArgumentZero
Definition SR.cs:52
Definition SR.cs:7
bool InspectAce(ref GenericAce ace, bool isDacl)
Definition CommonAcl.cs:359
void InsertAce(int index, GenericAce ace)
Definition RawAcl.cs:172

References System.Security.AccessControl.CommonAcl._acl, System.Security.AccessControl.CommonAcl._isDirty, System.Security.AccessControl.QualifiedAce.AceQualifier, System.SR.Arg_EnumAtLeastOneFlag, System.SR.Argument_ArgumentZero, System.Security.AccessControl.CommonAcl.Count, System.Security.AccessControl.RawAcl.Count, System.Security.AccessControl.RawAcl.InsertAce(), System.Security.AccessControl.CommonAcl.InspectAce(), 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.SetAccess(), System.Security.AccessControl.DiscretionaryAcl.SetAccess(), System.Security.AccessControl.SystemAcl.SetAudit(), and System.Security.AccessControl.SystemAcl.SetAudit().