Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
System.Security.AccessControl.DiscretionaryAcl Class Referencesealed

Public Member Functions

 DiscretionaryAcl (bool isContainer, bool isDS, int capacity)
 
 DiscretionaryAcl (bool isContainer, bool isDS, byte revision, int capacity)
 
 DiscretionaryAcl (bool isContainer, bool isDS, RawAcl? rawAcl)
 
void AddAccess (AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
 
void SetAccess (AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
 
bool RemoveAccess (AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
 
void RemoveAccessSpecific (AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
 
void AddAccess (AccessControlType accessType, SecurityIdentifier sid, ObjectAccessRule rule)
 
void AddAccess (AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
 
void SetAccess (AccessControlType accessType, SecurityIdentifier sid, ObjectAccessRule rule)
 
void SetAccess (AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
 
bool RemoveAccess (AccessControlType accessType, SecurityIdentifier sid, ObjectAccessRule rule)
 
bool RemoveAccess (AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
 
void RemoveAccessSpecific (AccessControlType accessType, SecurityIdentifier sid, ObjectAccessRule rule)
 
void RemoveAccessSpecific (AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
 
override void GetBinaryForm (byte[] binaryForm, int offset)
 
void RemoveInheritedAces ()
 
void Purge (SecurityIdentifier sid)
 
void CopyTo (GenericAce[] array, int index)
 
AceEnumerator GetEnumerator ()
 

Static Public Attributes

static readonly byte AclRevision = 2
 
static readonly byte AclRevisionDS = 4
 
static readonly int MaxBinaryLength = 65535
 

Package Functions

 DiscretionaryAcl (bool isContainer, bool isDS, RawAcl rawAcl, bool trusted)
 
override void OnAclModificationTried ()
 
void CheckAccessType (AccessControlType accessType)
 
void CheckFlags (InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
 
void AddQualifiedAce (SecurityIdentifier sid, AceQualifier qualifier, int accessMask, AceFlags flags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
 
void SetQualifiedAce (SecurityIdentifier sid, AceQualifier qualifier, int accessMask, AceFlags flags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
 
bool RemoveQualifiedAces (SecurityIdentifier sid, AceQualifier qualifier, int accessMask, AceFlags flags, bool saclSemantics, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
 
void RemoveQualifiedAcesSpecific (SecurityIdentifier sid, AceQualifier qualifier, int accessMask, AceFlags flags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
 

Static Package Functions

static DiscretionaryAcl CreateAllowEveryoneFullAccess (bool isDS, bool isContainer)
 

Properties

bool EveryOneFullAccessForNullDacl [get, set]
 
RawAcl RawAcl [get]
 
override byte Revision [get]
 
override int Count [get]
 
override int BinaryLength [get]
 
bool IsCanonical [get]
 
bool IsContainer [get]
 
bool IsDS [get]
 
override GenericAce this[int index] [get, set]
 
bool IsSynchronized [get]
 
virtual object SyncRoot [get]
 

Private Types

enum  AF {
  CI = 8 , OI = 4 , IO = 2 , NP = 1 ,
  Invalid = 1
}
 
enum  PM {
  F = 0x10 , CF = 8 , CO = 4 , GF = 2 ,
  GO = 1 , Invalid = 1
}
 
enum  ComparisonResult { LessThan , EqualTo , GreaterThan }
 

Private Member Functions

void CanonicalizeIfNecessary ()
 
void QuickSort (int left, int right, bool isDacl)
 
bool InspectAce (ref GenericAce ace, bool isDacl)
 
void RemoveMeaninglessAcesAndFlags (bool isDacl)
 
void Canonicalize (bool compact, bool isDacl)
 
void GetObjectTypesForSplit (ObjectAce originalAce, int accessMask, AceFlags aceFlags, out ObjectAceFlags objectFlags, out Guid objectType, out Guid inheritedObjectType)
 
bool ObjectTypesMatch (QualifiedAce ace, QualifiedAce newAce)
 
bool InheritedObjectTypesMatch (QualifiedAce ace, QualifiedAce newAce)
 
bool AccessMasksAreMergeable (QualifiedAce ace, QualifiedAce newAce)
 
bool AceFlagsAreMergeable (QualifiedAce ace, QualifiedAce newAce)
 
bool GetAccessMaskForRemoval (QualifiedAce ace, ObjectAceFlags objectFlags, Guid objectType, ref int accessMask)
 
bool GetInheritanceFlagsForRemoval (QualifiedAce ace, ObjectAceFlags objectFlags, Guid inheritedObjectType, ref AceFlags aceFlags)
 
bool MergeAces (ref QualifiedAce ace, QualifiedAce newAce)
 
bool CanonicalCheck (bool isDacl)
 
void ThrowIfNotCanonical ()
 
void ICollection. CopyTo (Array array, int index)
 
IEnumerator IEnumerable. GetEnumerator ()
 

Static Private Member Functions

static PM[] CreateAFtoPMConversionMatrix ()
 
static AF[] CreatePMtoAFConversionMatrix ()
 
static AF AFFromAceFlags (AceFlags aceFlags, bool isDS)
 
static AceFlags AceFlagsFromAF (AF af, bool isDS)
 
static bool MergeInheritanceBits (AceFlags left, AceFlags right, bool isDS, out AceFlags result)
 
static bool RemoveInheritanceBits (AceFlags existing, AceFlags remove, bool isDS, out AceFlags result, out bool total)
 
static int DaclAcePriority (GenericAce ace)
 
static int SaclAcePriority (GenericAce ace)
 
static ComparisonResult CompareAces (GenericAce ace1, GenericAce ace2, bool isDacl)
 
static bool AceOpaquesMatch (QualifiedAce ace, QualifiedAce newAce)
 
static bool AcesAreMergeable (QualifiedAce ace, QualifiedAce newAce)
 

Private Attributes

bool everyOneFullAccessForNullDacl
 
readonly RawAcl _acl
 
bool _isDirty
 
readonly bool _isCanonical
 
readonly bool _isContainer
 
readonly bool _isDS
 

Static Private Attributes

static readonly SecurityIdentifier _sidEveryone = new SecurityIdentifier(WellKnownSidType.WorldSid, null)
 
static readonly PM[] s_AFtoPM = CreateAFtoPMConversionMatrix()
 
static readonly AF[] s_PMtoAF = CreatePMtoAFConversionMatrix()
 

Detailed Description

Definition at line 5 of file DiscretionaryAcl.cs.


The documentation for this class was generated from the following file: