Teilen über


CSacl-Klasse

Diese Klasse ist ein Wrapper für eine SACL-Struktur (Systemzugriffssteuerungsliste).

Wichtig

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

Syntax

class CSacl : public CAcl

Member

Öffentliche Konstruktoren

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

Öffentliche Methoden

Name Beschreibung
CSacl::AddAuditAce Fügt dem CSacl Objekt einen Überwachungszugriffssteuerungseintrag (Access Control Entry, ACE) hinzu.
CSacl::GetAceCount Gibt die Anzahl der Zugriffssteuerungseinträge (ACCESS-Control Entries, ACEs) im CSacl Objekt zurück.
CSacl::RemoveAce Entfernt einen bestimmten ACE -Eintrag (Zugriffssteuerungseintrag) aus dem CSacl Objekt.
CSacl::RemoveAllAces Entfernt alle im CSacl Objekt enthaltenen ACEs.

Öffentliche Operatoren

Name Beschreibung
CSacl::operator = Zuweisungsoperator.

Hinweise

Eine SACL enthält Zugriffssteuerungseinträge (Access Control Entries, ACEs), die die Typen von Zugriffsversuchen angeben, die Überwachungsdatensätze im Sicherheitsereignisprotokoll eines Do Standard controllers generieren. Beachten Sie, dass eine SACL Protokolleinträge nur auf dem Do Standard Controller generiert, in dem der Zugriffsversuch aufgetreten ist, nicht auf jedem Do Standard Controller, der ein Replikat des Objekts enthält.

Um die SACL im Sicherheitsdeskriptor eines Objekts festzulegen oder abzurufen, muss die SE_SECURITY_NAME Berechtigung im Zugriffstoken des anfordernden Threads aktiviert werden. Die Gruppe "Administratoren" verfügt standardmäßig über diese Berechtigung, die anderen Benutzern oder Gruppen gewährt werden kann. Wenn die gewährten Berechtigungen nicht alle erforderlich sind: Bevor der durch die Berechtigung definierte Vorgang ausgeführt werden kann, muss die Berechtigung im Sicherheitszugriffstoken aktiviert werden, um wirksam zu werden. Mit dem Modell können Berechtigungen nur für bestimmte Systemvorgänge aktiviert und dann deaktiviert werden, wenn sie nicht mehr benötigt werden. Beispiele zum Aktivieren von SE_SECURITY_NAME finden Sie unter AtlGetSacl und AtlSetSacl .

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

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

Vererbungshierarchie

Cacl

CSacl

Anforderungen

Kopfzeile: atlsecurity.h

CSacl::AddAuditAce

Fügt dem CSacl Objekt einen Überwachungszugriffssteuerungseintrag (Access Control Entry, ACE) hinzu.

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

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

Parameter

rSid
Das CSid-Objekt .

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

bSuccess
Gibt an, ob zulässige Zugriffsversuche überwacht werden sollen. Legen Sie dieses Kennzeichen auf "true" fest, um die Überwachung zu aktivieren. andernfalls legen Sie ihn auf "false" fest.

bFailure
Gibt an, ob zugriffsverweigerungsversuche überwacht werden sollen. Legen Sie dieses Kennzeichen auf "true" fest, um die Überwachung zu aktivieren. andernfalls legen Sie ihn auf "false" fest.

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 CSacl Objekt hinzugefügt wird, false bei Fehler.

Hinweise

Ein CSacl Objekt enthält Zugriffssteuerungseinträge (Access Control Entries, ACEs), die die Typen von Zugriffsversuchen angeben, die Überwachungsdatensätze im Sicherheitsereignisprotokoll generieren. Diese Methode fügt dem CSacl Objekt eine solche ACE hinzu.

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

CSacl::CSacl

Der Konstruktor.

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

Parameter

rhs
Eine vorhandene ACL Struktur (Zugriffssteuerungsliste).

Hinweise

Das CSacl Objekt kann optional mithilfe einer vorhandenen ACL Struktur erstellt werden. Stellen Sie sicher, dass dieser Parameter eine Systemzugriffssteuerungsliste (ACCESS-Control List, SACL) und keine diskretionäre Zugriffssteuerungsliste (ACCESS-Control List, DACL) ist. Wenn in Debugbuilds eine DACL bereitgestellt wird, tritt eine Assertion auf. In release builds any entries from a DACL are ignored.

CSacl::~CSacl

Der Destruktor.

~CSacl() throw();

Hinweise

Der Destruktor gibt alle vom Objekt erworbenen Ressourcen frei, einschließlich aller Zugriffssteuerungseinträge (ACCESS-Control Entries, ACEs).

CSacl::GetAceCount

Gibt die Anzahl der Zugriffssteuerungseinträge (ACCESS-Control Entries, ACEs) im CSacl Objekt zurück.

UINT GetAceCount() const throw();

Rückgabewert

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

CSacl::operator =

Zuweisungsoperator.

CSacl& 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 CSacl Objekt zurück. Stellen Sie sicher, dass der ACL Parameter tatsächlich eine Systemzugriffssteuerungsliste (ACCESS-Control List, SACL) und keine diskretionäre Zugriffssteuerungsliste (ACCESS-Control List, DACL) ist. In Debugbuilds tritt eine Assertion auf, und in Releasebuilds wird der ACL Parameter ignoriert.

CSacl::RemoveAce

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

void RemoveAce(UINT nIndex) throw();

Parameter

nIndex
Index zum Entfernen des ACE-Eintrags.

Hinweise

Diese Methode wird von CAtlArray::RemoveAt abgeleitet.

CSacl::RemoveAllAces

Entfernt alle im Objekt enthaltenen CSacl Zugriffssteuerungseinträge (ACCESS-Control Entries, ACEs).

void RemoveAllAces() throw();

Hinweise

Entfernt jede ACE Struktur (falls vorhanden) im CSacl Objekt.

Siehe auch

CAcl-Klasse
Acls
Asse
Klassenübersicht
Globale Sicherheitsfunktionen