CAcl-Klasse
Diese Klasse ist ein Wrapper für eine ACL
Struktur (Zugriffssteuerungsliste).
Wichtig
Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.
Syntax
class CAcl
Member
Öffentliche Typedefs
Name | Beschreibung |
---|---|
CAcl::CAccessMaskArray | Ein Array von ACCESS_MASKs. |
CAcl::CAceFlagArray | Ein Array von BYTEs. |
CAcl::CAceTypeArray | Ein Array von BYTEs. |
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CAcl::CAcl | Der Konstruktor. |
CAcl::~CAcl | Der Destruktor. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CAcl::GetAceCount | Gibt die Anzahl der Zugriffssteuerungseintragsobjekte (Access-Control Entry, ACE) zurück. |
CAcl::GetAclEntries | Ruft die ACL-Einträge (Access Control List) aus dem CAcl Objekt ab. |
CAcl::GetAclEntry | Ruft alle Informationen zu einem Eintrag in einem CAcl Objekt ab. |
CAcl::GetLength | Gibt die Länge der ACL zurück. |
CAcl::GetPACL | Gibt einen PACL -Wert (Zeiger auf eine ACL) zurück. |
CAcl::IsEmpty | Testet das CAcl Objekt auf Einträge. |
CAcl::IsNull | Gibt den Status des CAcl Objekts zurück. |
CAcl::RemoveAce | Entfernt einen bestimmten ACE -Eintrag (Zugriffssteuerungseintrag) aus dem CAcl Objekt. |
CAcl::RemoveAces | Entfernt alle ACEs (Zugriffssteuerungseinträge) aus dem, der CAcl für das angegebene CSid Element gilt. |
CAcl::SetEmpty | Markiert das CAcl Objekt als leer. |
CAcl::SetNull | Markiert das CAcl Objekt als NULL. |
Öffentliche Operatoren
Name | Beschreibung |
---|---|
CAcl::operator const ACL * | Wandelt ein CAcl Objekt in eine ACL Struktur um. |
CAcl::operator = | Zuweisungsoperator. |
Hinweise
Die ACL
Struktur ist der Header einer ACL (Zugriffssteuerungsliste). Eine ACL enthält eine sequenzielle Liste von null oder mehr ACEs (Zugriffssteuerungseinträge). Die einzelnen ACEs in einer ACL werden von 0 bis n-1 nummeriert, wobei n die Anzahl der ACEs in der ACL ist. Beim Bearbeiten einer ACL bezieht sich eine Anwendung auf einen Zugriffssteuerungseintrag (Access-Control Entry, ACE) innerhalb der ACL anhand seines Indexes.
Es gibt zwei ACL-Typen:
Freigegeben
System
Eine diskretionäre ACL wird vom Besitzer eines Objekts oder jeder Person gesteuert, die WRITE_DAC Zugriff auf das Objekt gewährt hat. Es gibt den Zugriff bestimmter Benutzer und Gruppen auf ein Objekt an. Beispielsweise kann der Besitzer einer Datei eine ermessensberechtigte ACL verwenden, um zu steuern, welche Benutzer und Gruppen Zugriff auf die Datei haben können.
Ein Objekt kann auch Sicherheitsinformationen auf Systemebene zugeordnet haben, in Form einer systembasierten ACL, die von einem Systemadministrator gesteuert wird. Eine System-ACL kann es dem Systemadministrator ermöglichen, alle Versuche zu überwachen, auf ein Objekt zuzugreifen.
Weitere Informationen finden Sie in der ACL-Diskussion im Windows SDK.
Eine Einführung in das Zugriffssteuerungsmodell in Windows finden Sie unter Access Control im Windows SDK.
Anforderungen
Kopfzeile: atlsecurity.h
CAcl::CAccessMaskArray
Ein Array von ACCESS_MASK Objekten.
typedef CAtlArray<ACCESS_MASK> CAccessMaskArray;
Hinweise
Dieser Typedef gibt den Arraytyp an, der zum Speichern von Zugriffsrechten verwendet werden kann, die in Zugriffssteuerungseinträgen (Access-Control Entries, ACEs) verwendet werden können.
CAcl::CAceFlagArray
Ein Array von BYTEs.
typedef CAtlArray<BYTE> CAceFlagArray;
Hinweise
Dieser Typedef gibt den Arraytyp an, der zum Definieren der zugriffssteuerungsspezifischen Steuerelementkennzeichnungen (Access-Control Entry, ACE) verwendet wird. Die vollständige Liste der möglichen Flags finden Sie in der ACE_HEADER Definition.
CAcl::CAceTypeArray
Ein Array von BYTEs.
typedef CAtlArray<BYTE> CAceTypeArray;
Hinweise
Dieser Typedef gibt den Arraytyp an, der zum Definieren der Art der Zugriffssteuerungseingabeobjekte (Access-Control Entry, ACE) verwendet wird, z. B. ACCESS_ALLOWED_ACE_TYPE oder ACCESS_DENIED_ACE_TYPE. Die vollständige Liste der möglichen Typen finden Sie in der ACE_HEADER Definition.
CAcl::CAcl
Der Konstruktor.
CAcl() throw();
CAcl(const CAcl& rhs) throw(...);
Parameter
rhs
Ein vorhandenes CAcl
-Objekt.
Hinweise
Das CAcl
Objekt kann optional mithilfe eines vorhandenen CAcl
Objekts erstellt werden.
CAcl::~CAcl
Der Destruktor.
virtual ~CAcl() throw();
Hinweise
Der Destruktor gibt alle ressourcen frei, die vom Objekt erworben wurden.
CAcl::GetAceCount
Gibt die Anzahl der Zugriffssteuerungseintragsobjekte (Access-Control Entry, ACE) zurück.
virtual UINT GetAceCount() const throw() = 0;
Rückgabewert
Gibt die Anzahl der ACE-Einträge im CAcl
Objekt zurück.
CAcl::GetAclEntries
Ruft die ACL-Einträge (Access Control List) aus dem CAcl
Objekt ab.
void GetAclEntries(
CSid::CSidArray* pSids,
CAccessMaskArray* pAccessMasks = NULL,
CAceTypeArray* pAceTypes = NULL,
CAceFlagArray* pAceFlags = NULL) const throw(...);
Parameter
pSids
Ein Zeiger auf ein Array von CSid-Objekten .
pAccessMasks
Die Zugriffsmasken.
pAceTypes
Die Zugriffssteuerungseintragstypen (Access-Control Entry, ACE).
pAceFlags
Die ACE-Flags.
Hinweise
Diese Methode füllt die Arrayparameter mit den Details jedes ACE-Objekts, das CAcl
im Objekt enthalten ist. Verwenden Sie NULL, wenn die Details für dieses bestimmte Array nicht erforderlich sind.
Der Inhalt der einzelnen Arrays entspricht einander, d. h. das erste Element des CAccessMaskArray
Arrays entspricht dem ersten Element im CSidArray
Array usw.
Weitere Informationen zu ACE-Typen und Flags finden Sie unter ACE_HEADER .
CAcl::GetAclEntry
Ruft alle Informationen zu einem Eintrag in einer Zugriffssteuerungsliste (Access Control List, ACL) ab.
void GetAclEntry(
UINT nIndex,
CSid* pSid,
ACCESS_MASK* pMask = NULL,
BYTE* pType = NULL,
BYTE* pFlags = NULL,
GUID* pObjectType = NULL,
GUID* pInheritedObjectType = NULL) const throw(...);
Parameter
nIndex
Index für den abzurufenden ACL-Eintrag.
pSid
Das CSid-Objekt , auf das der ACL-Eintrag angewendet wird.
pMask
Die Maske, die Berechtigungen zum Gewähren oder Verweigern des Zugriffs angibt.
pType
Der ACE-Typ.
pFlags
Die ACE-Flags.
pObjectType
Der Objekttyp. Dies wird auf GUID_NULL festgelegt, wenn der Objekttyp nicht in der ACE angegeben ist oder wenn es sich bei der ACE nicht um eine OBJEKT-ACE handelt.
pInheritedObjectType
Der geerbte Objekttyp. Dies wird auf GUID_NULL festgelegt, wenn der geerbte Objekttyp nicht in der ACE angegeben ist oder wenn es sich bei der ACE nicht um eine OBJEKT-ACE handelt.
Hinweise
Diese Methode ruft alle Informationen zu einer einzelnen ACE ab, wobei mehr Informationen als CAcl::GetAclEntries allein zur Verfügung gestellt werden.
Weitere Informationen zu ACE-Typen und Flags finden Sie unter ACE_HEADER .
CAcl::GetLength
Gibt die Länge der Zugriffssteuerungsliste (Access-Control List, ACL) zurück.
UINT GetLength() const throw();
Rückgabewert
Gibt die erforderliche Länge in Bytes zurück, die für die ACL
Struktur erforderlich ist.
CAcl::GetPACL
Gibt einen Zeiger auf eine Zugriffssteuerungsliste (Access-Control List, ACL) zurück.
const ACL* GetPACL() const throw(...);
Rückgabewert
Gibt einen Zeiger auf die ACL
Struktur zurück.
CAcl::IsEmpty
Testet das CAcl
Objekt auf Einträge.
bool IsEmpty() const throw();
Hinweise
Gibt TRUE zurück, wenn das CAcl
Objekt nicht NULL ist und keine Einträge enthält. Gibt FALSE zurück, wenn das CAcl
Objekt entweder NULL ist oder mindestens einen Eintrag enthält.
CAcl::IsNull
Gibt den Status des CAcl
Objekts zurück.
bool IsNull() const throw();
Rückgabewert
Gibt TRUE zurück, wenn das CAcl
Objekt NULL ist, andernfalls FALSE.
CAcl::operator const ACL *
Wandelt ein CAcl
Objekt in eine ACL
Struktur (Zugriffssteuerungsliste) um.
operator const ACL *() const throw(...);
Hinweise
Gibt die Adresse der ACL
Struktur zurück.
CAcl::operator =
Zuweisungsoperator.
CAcl& operator= (const CAcl& rhs) throw(...);
Parameter
rhs
Das CAcl
objekt, das dem vorhandenen Objekt zugewiesen werden soll.
Rückgabewert
Gibt einen Verweis auf das aktualisierte CAcl
Objekt zurück.
CAcl::RemoveAce
Entfernt einen bestimmten ACE -Eintrag (Zugriffssteuerungseintrag) aus dem CAcl
Objekt.
void RemoveAce(UINT nIndex) throw();
Parameter
nIndex
Index zum Entfernen des ACE-Eintrags.
Hinweise
Diese Methode wird von CAtlArray::RemoveAt abgeleitet.
CAcl::RemoveAces
Entfernt alle ACEs (Zugriffssteuerungseinträge) aus dem, der CAcl
für das angegebene CSid
Element gilt.
bool RemoveAces(const CSid& rSid) throw(...)
Parameter
rSid
Ein Verweis auf ein CSid
-Objekt.
CAcl::SetEmpty
Markiert das CAcl
Objekt als leer.
void SetEmpty() throw();
Hinweise
Dies CAcl
kann auf leer oder AUF NULL festgelegt werden: Die beiden Zustände sind unterschiedlich.
CAcl::SetNull
Markiert das CAcl
Objekt als NULL.
void SetNull() throw();
Hinweise
Dies CAcl
kann auf leer oder AUF NULL festgelegt werden: Die beiden Zustände sind unterschiedlich.