Freigeben über


CDacl-Klasse

Diese Klasse ist ein Wrapper für eine DACL-Struktur (diskretionäre Zugriffssteuerungsliste).

Wichtig

Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.

Syntax

class CDacl : public CAcl

Member

Öffentliche Konstruktoren

Name Beschreibung
CDacl::CDacl Der Konstruktor.
CDacl::~CDacl Der Destruktor.

Öffentliche Methoden

Name Beschreibung
CDacl::AddAllowedAce Fügt dem CDacl Objekt einen zulässigen ACE -Eintrag (Zugriffssteuerungseintrag) hinzu.
CDacl::AddDeniedAce Fügt dem CDacl Objekt eine verweigerte ACE hinzu.
CDacl::GetAceCount Gibt die Anzahl der ACEs (Zugriffssteuerungseinträge) im CDacl Objekt zurück.
CDacl::RemoveAce Entfernt einen bestimmten ACE -Eintrag (Zugriffssteuerungseintrag) aus dem CDacl Objekt.
CDacl::RemoveAllAces Entfernt alle im CDacl Objekt enthaltenen ACEs.

Öffentliche Operatoren

Name Beschreibung
CDacl::operator = Zuweisungsoperator.

Hinweise

Die Sicherheitsbeschreibung eines Objekts kann eine DACL enthalten. Eine DACL enthält null oder mehr ACEs (Zugriffssteuerungseinträge), die die Benutzer und Gruppen identifizieren, die auf das Objekt zugreifen können. Wenn eine DACL leer ist (d. h., sie enthält null ACEs), wird kein Zugriff explizit gewährt, sodass der Zugriff implizit verweigert wird. Wenn der Sicherheitsdeskriptor eines Objekts jedoch nicht über eine DACL verfügt, ist das Objekt nicht geschützt, und jeder hat vollständigen Zugriff.

Um die DACL eines Objekts abzurufen, müssen Sie der Besitzer des Objekts sein oder READ_CONTROL Zugriff auf das Objekt haben. Um die DACL eines Objekts zu ändern, müssen Sie über WRITE_DAC Zugriff auf das Objekt verfügen.

Verwenden Sie die Klassenmethoden, die zum Erstellen, Hinzufügen, Entfernen und Löschen von ACEs aus dem CDacl Objekt bereitgestellt werden. Siehe auch AtlGetDacl und AtlSetDacl.

Eine Einführung in das Zugriffssteuerungsmodell in Windows finden Sie unter Access Control im Windows SDK.

Vererbungshierarchie

CAcl

CDacl

Anforderungen

Kopfzeile: atlsecurity.h

CDacl::AddAllowedAce

Fügt dem CDacl Objekt einen zulässigen ACE -Eintrag (Zugriffssteuerungseintrag) hinzu.

bool AddAllowedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags = 0) throw(...);

bool AddAllowedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags,
    const GUID* pObjectType,
    const GUID* pInheritedObjectType) throw(...);

Parameter

rSid
Ein CSid-Objekt .

AccessMask
Gibt die Maske der Zugriffsrechte an, die für das angegebene CSid Objekt zulässig sind.

AceFlags
Eine Reihe von Bitkennzeichnungen, die die ACE-Vererbung steuern.

pObjectType
Der Objekttyp.

pInheritedObjectType
Der geerbte Objekttyp.

Rückgabewert

Gibt TRUE zurück, wenn die ACE dem CDacl Objekt hinzugefügt wird, false bei Fehler.

Hinweise

Ein CDacl Objekt enthält null oder mehr ACEs (Zugriffssteuerungseinträge), die die Benutzer und Gruppen identifizieren, die auf das Objekt zugreifen können. Diese Methode fügt eine ACE hinzu, die den Zugriff auf das CDacl Objekt ermöglicht.

Eine Beschreibung der verschiedenen Flags, die im Parameter festgelegt werden können, finden Sie unter AceFlags ACE_HEADER.

CDacl::AddDeniedAce

Fügt dem CDacl Objekt eine verweigerte ACE (Zugriffssteuerungseintrag) hinzu.

bool AddDeniedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags = 0) throw(...);

bool AddDeniedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags,
    const GUID* pObjectType,
    const GUID* pInheritedObjectType) throw(...);

Parameter

rSid
Ein CSid-Objekt.

AccessMask
Gibt die Maske der Zugriffsrechte an, die für das angegebene CSid Objekt verweigert werden sollen.

AceFlags
Eine Reihe von Bitkennzeichnungen, die die ACE-Vererbung steuern. Der Standardwert ist 0 in der ersten Form der Methode.

pObjectType
Der Objekttyp.

pInheritedObjectType
Der geerbte Objekttyp.

Rückgabewert

Gibt TRUE zurück, wenn die ACE dem CDacl Objekt hinzugefügt wird, false bei Fehler.

Hinweise

Ein CDacl Objekt enthält null oder mehr ACEs (Zugriffssteuerungseinträge), die die Benutzer und Gruppen identifizieren, die auf das Objekt zugreifen können. Diese Methode fügt eine ACE hinzu, die den Zugriff auf das CDacl Objekt verweigert.

Eine Beschreibung der verschiedenen Flags, die im Parameter festgelegt werden können, finden Sie unter AceFlags ACE_HEADER.

CDacl::CDacl

Der Konstruktor.

CDacl (const ACL& rhs) throw(...);
CDacl () throw();

Parameter

rhs
Eine vorhandene ACL Struktur (Zugriffssteuerungsliste).

Hinweise

Das CDacl Objekt kann optional mithilfe einer vorhandenen ACL Struktur erstellt werden. Es ist wichtig zu beachten, dass nur eine DACL (diskretionäre Zugriffssteuerungsliste) und keine SACL (Systemzugriffssteuerungsliste) als dieser Parameter übergeben werden sollte. Bei Debugbuilds führt das Übergeben einer SACL zu einer ASSERTION. Bei Releasebuilds führt das Übergeben einer SACL dazu, dass die ACEs (Zugriffssteuerungseinträge) in der ACL ignoriert werden, und es tritt kein Fehler auf.

CDacl::~CDacl

Der Destruktor.

~CDacl () throw();

Hinweise

Der Destruktor gibt alle vom Objekt erworbenen Ressourcen frei, einschließlich aller ACEs (Zugriffssteuerungseinträge) mit CDacl::RemoveAllAces.

CDacl::GetAceCount

Gibt die Anzahl der ACEs (Zugriffssteuerungseinträge) im CDacl Objekt zurück.

UINT GetAceCount() const throw();

Rückgabewert

Gibt die Anzahl der im CDacl Objekt enthaltenen ACEs zurück.

CDacl::operator =

Zuweisungsoperator.

CDacl& operator= (const ACL& rhs) throw(...);

Parameter

rhs
Die ACL (Zugriffssteuerungsliste), die dem vorhandenen Objekt zugewiesen werden soll.

Rückgabewert

Gibt einen Verweis auf das aktualisierte CDacl Objekt zurück.

Hinweise

Sie sollten sicherstellen, dass Sie nur eine DACL (diskretionäre Zugriffssteuerungsliste) an diese Funktion übergeben. Das Übergeben einer SACL (Systemzugriffssteuerungsliste) an diese Funktion führt zu einer ASSERTION in Debugbuilds, verursacht aber keinen Fehler in Releasebuilds.

CDacl::RemoveAce

Entfernt einen bestimmten ACE -Eintrag (Zugriffssteuerungseintrag) aus dem CDacl Objekt.

void RemoveAce(UINT nIndex) throw();

Parameter

nIndex
Index zum Entfernen des ACE-Eintrags.

Hinweise

Diese Methode wird von CAtlArray::RemoveAt abgeleitet.

CDacl::RemoveAllAces

Entfernt alle ACEs (Zugriffssteuerungseinträge), die CDacl im Objekt enthalten sind.

void RemoveAllAces() throw();

Hinweise

Entfernt jede ACE (access-control entry)-Struktur (falls vorhanden) im CDacl Objekt.

Siehe auch

Sicherheitsbeispiel
CAcl-Klasse
ACLs
Asse
Klassenübersicht
Globale Sicherheitsfunktionen