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