Freigeben über


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 CSidElement 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 CSidElement 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.

Siehe auch

Klassenübersicht
Globale Sicherheitsfunktionen