Freigeben über


CSecurityDesc-Klasse

Diese Klasse ist ein Wrapper für die SECURITY_DESCRIPTOR Struktur.

Wichtig

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

Syntax

class CSecurityDesc

Member

Öffentliche Konstruktoren

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

Öffentliche Methoden

Name Beschreibung
CSecurityDesc::FromString Konvertiert einen Sicherheitsdeskriptor im Zeichenfolgenformat in einen gültigen, funktionalen Sicherheitsdeskriptor.
CSecurityDesc::GetControl Ruft Steuerinformationen aus der Sicherheitsbeschreibung ab.
CSecurityDesc::GetDacl Ruft diskretionäre DaCL-Informationen (Access Control List) aus der Sicherheitsbeschreibung ab.
CSecurityDesc::GetGroup Ruft die primären Gruppeninformationen aus der Sicherheitsbeschreibung ab.
CSecurityDesc::GetOwner Ruft den Besitzer informaton vom Sicherheitsdeskriptor ab.
CSecurityDesc::GetPSECURITY_DESCRIPTOR Gibt einen Zeiger auf die SECURITY_DESCRIPTOR Struktur zurück.
CSecurityDesc::GetSacl Ruft Informationen zur Systemzugriffssteuerungsliste (SACL) aus der Sicherheitsbeschreibung ab.
CSecurityDesc::IsDaclAutoInherited Bestimmt, ob die DACL so konfiguriert ist, dass die automatische Verteilung unterstützt wird.
CSecurityDesc::IsDaclDefaulted Bestimmt, ob der Sicherheitsdeskriptor mit einer standardmäßigen DACL konfiguriert ist.
CSecurityDesc::IsDaclPresent Bestimmt, ob der Sicherheitsdeskriptor eine DACL enthält.
CSecurityDesc::IsDaclProtected Bestimmt, ob die DACL so konfiguriert ist, dass Änderungen verhindert werden.
CSecurityDesc::IsGroupDefaulted Bestimmt, ob standardmäßig die Gruppensicherheits-ID (GROUP Security Identifier, SID) des Sicherheitsdeskriptors festgelegt wurde.
CSecurityDesc::IsOwnerDefaulted Bestimmt, ob die Besitzer-SID des Sicherheitsdeskriptors standardmäßig festgelegt wurde.
CSecurityDesc::IsSaclAutoInherited Bestimmt, ob die SACL so konfiguriert ist, dass die automatische Verteilung unterstützt wird.
CSecurityDesc::IsSaclDefaulted Bestimmt, ob der Sicherheitsdeskriptor mit einer STANDARD-SACL konfiguriert ist.
CSecurityDesc::IsSaclPresent Bestimmt, ob der Sicherheitsdeskriptor eine SACL enthält.
CSecurityDesc::IsSaclProtected Bestimmt, ob die SACL so konfiguriert ist, dass Änderungen verhindert werden.
CSecurityDesc::IsSelfRelative Bestimmt, ob sich der Sicherheitsdeskriptor im selbstrelativen Format befindet.
CSecurityDesc::MakeAbsolute Rufen Sie diese Methode auf, um den Sicherheitsdeskriptor in absolutes Format zu konvertieren.
CSecurityDesc::MakeSelfRelative Rufen Sie diese Methode auf, um den Sicherheitsdeskriptor in ein selbstrelatives Format zu konvertieren.
CSecurityDesc::SetControl Legt die Steuerungsbits einer Sicherheitsbeschreibung fest.
CSecurityDesc::SetDacl Legt Informationen in einer DACL fest. Wenn eine DACL bereits im Sicherheitsdeskriptor vorhanden ist, wird sie ersetzt.
CSecurityDesc::SetGroup Legt die primären Gruppeninformationen eines absoluten Formatsicherheitsdeskriptors fest, wobei alle primären Gruppeninformationen ersetzt werden, die bereits vorhanden sind.
CSecurityDesc::SetOwner Legt die Besitzerinformationen eines absoluten Formatsicherheitsdeskriptors fest, wobei alle besitzerinformationen ersetzt werden, die bereits vorhanden sind.
CSecurityDesc::SetSacl Legt Informationen in einer SACL fest. Wenn eine SACL bereits im Sicherheitsdeskriptor vorhanden ist, wird sie ersetzt.
CSecurityDesc::ToString Konvertiert einen Sicherheitsdeskriptor in ein Zeichenfolgenformat.

Öffentliche Operatoren

Name Beschreibung
CSecurityDesc::operator const SECURITY_DESCRIPTOR * Gibt einen Zeiger auf die SECURITY_DESCRIPTOR Struktur zurück.
CSecurityDesc::operator = Zuweisungsoperator.

Hinweise

Die SECURITY_DESCRIPTOR Struktur enthält die Sicherheitsinformationen, die einem Objekt zugeordnet sind. Anwendungen verwenden diese Struktur, um den Sicherheitsstatus eines Objekts festzulegen und abzufragen. Siehe auch AtlGetSecurityDescriptor.

Anwendungen sollten die SECURITY_DESCRIPTOR Struktur nicht direkt ändern und stattdessen die bereitgestellten Klassenmethoden verwenden.

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

Anforderungen

Kopfzeile: atlsecurity.h

CSecurityDesc::CSecurityDesc

Der Konstruktor.

CSecurityDesc() throw();
CSecurityDesc(const CSecurityDesc& rhs) throw(... );
CSecurityDesc(const SECURITY_DESCRIPTOR& rhs) throw(...);

Parameter

rhs
Das CSecurityDesc Objekt oder SECURITY_DESCRIPTOR die Struktur, das dem neuen CSecurityDesc Objekt zugewiesen werden soll.

Hinweise

Das CSecurityDesc Objekt kann optional mithilfe einer SECURITY_DESCRIPTOR Struktur oder eines zuvor definierten CSecurityDesc Objekts erstellt werden.

CSecurityDesc::~CSecurityDesc

Der Destruktor.

virtual ~CSecurityDesc() throw();

Hinweise

Der Destruktor gibt alle zugeordneten Ressourcen frei.

CSecurityDesc::FromString

Konvertiert einen Sicherheitsdeskriptor im Zeichenfolgenformat in einen gültigen, funktionalen Sicherheitsdeskriptor.

bool FromString(LPCTSTR pstr) throw(...);

Parameter

Pstr
Zeiger auf eine mit Null beendete Zeichenfolge, die den zu konvertierenden Sicherheitsdeskriptor im Zeichenfolgenformat enthält.

Rückgabewert

Gibt true bei Erfolg zurück. Löst eine Ausnahme beim Fehler aus.

Hinweise

Die Zeichenfolge kann mithilfe von CSecurityDesc::ToString erstellt werden. Das Konvertieren des Sicherheitsdeskriptors in eine Zeichenfolge erleichtert das Speichern und Übertragen.

Diese Methode ruft ConvertStringSecurityDescriptorToSecurityDescriptor auf.

CSecurityDesc::GetControl

Ruft Steuerinformationen aus der Sicherheitsbeschreibung ab.

bool GetControl(SECURITY_DESCRIPTOR_CONTROL* psdc) const throw();

Parameter

psdc
Zeigen Sie auf eine SECURITY_DESCRIPTOR_CONTROL Struktur, die die Steuerelementinformationen des Sicherheitsdeskriptors empfängt.

Rückgabewert

Gibt true zurück, wenn die Methode erfolgreich ist, false, wenn sie fehlschlägt.

Hinweise

Diese Methode ruft GetSecurityDescriptorControl auf.

CSecurityDesc::GetDacl

Ruft diskretionäre DaCL-Informationen (Access Control List) aus der Sicherheitsbeschreibung ab.

bool GetDacl(
    CDacl* pDacl,
    bool* pbPresent = NULL,
    bool* pbDefaulted = NULL) const throw(...);

Parameter

pDacl
Zeiger auf eine CDacl Struktur, in der eine Kopie der DACL des Sicherheitsdeskriptors gespeichert werden soll. Wenn eine ermessensbezogene ACL vorhanden ist, legt die Methode "pDacl" auf die Adresse der ACL des Sicherheitsdeskriptors fest.If a discretionary ACL, the method sets pDacl to the address of the security descriptor's discretionary ACL. Wenn keine diskretionäre ACL vorhanden ist, wird kein Wert gespeichert.

pbPresent
Zeigen Sie auf einen Wert, der das Vorhandensein einer diskretionären ACL im angegebenen Sicherheitsdeskriptor angibt. Wenn der Sicherheitsdeskriptor eine diskretionäre ACL enthält, wird dieser Parameter auf "true" festgelegt. Wenn der Sicherheitsdeskriptor keine diskretionäre ACL enthält, wird dieser Parameter auf "false" festgelegt.

pbDefaulted
Zeigen Sie auf ein Flag, das auf den Wert des SE_DACL_DEFAULTED-Flags in der SECURITY_DESCRIPTOR_CONTROL Struktur festgelegt ist, wenn für den Sicherheitsdeskriptor eine diskretionäre ACL vorhanden ist. Wenn diese Kennzeichnung "true" ist, wurde die ermessensfähige ACL von einem Standardmechanismus abgerufen. wenn false, wurde die diskretionäre ACL explizit von einem Benutzer angegeben.

Rückgabewert

Gibt true zurück, wenn die Methode erfolgreich ist, false, wenn sie fehlschlägt.

CSecurityDesc::GetGroup

Ruft die primären Gruppeninformationen aus der Sicherheitsbeschreibung ab.

bool GetGroup(
    CSid* pSid,
    bool* pbDefaulted = NULL) const throw(...);

Parameter

pSid
Zeiger auf eine CSid (Sicherheits-ID), die eine Kopie der gruppe empfängt, die in der CDacl gespeichert ist.

pbDefaulted
Zeigen Sie auf ein Flag, das auf den Wert des SE_GROUP_DEFAULTED Flags in der SECURITY_DESCRIPTOR_CONTROL Struktur festgelegt ist, wenn die Methode zurückgegeben wird.

Rückgabewert

Gibt true zurück, wenn die Methode erfolgreich ist, false, wenn sie fehlschlägt.

CSecurityDesc::GetOwner

Ruft den Besitzer informaton vom Sicherheitsdeskriptor ab.

bool GetOwner(
    CSid* pSid,
    bool* pbDefaulted = NULL) const throw(...);

Parameter

pSid
Zeiger auf eine CSid (Sicherheits-ID), die eine Kopie der gruppe empfängt, die in der CDacl gespeichert ist.

pbDefaulted
Zeigen Sie auf ein Flag, das auf den Wert des SE_OWNER_DEFAULTED Flags in der SECURITY_DESCRIPTOR_CONTROL Struktur festgelegt ist, wenn die Methode zurückgegeben wird.

Rückgabewert

Gibt true zurück, wenn die Methode erfolgreich ist, false, wenn sie fehlschlägt.

CSecurityDesc::GetPSECURITY_DESCRIPTOR

Gibt einen Zeiger auf die SECURITY_DESCRIPTOR Struktur zurück.

const SECURITY_DESCRIPTOR* GetPSECURITY_DESCRIPTOR() const throw();

Rückgabewert

Gibt einen Zeiger auf die SECURITY_DESCRIPTOR-Struktur zurück.

CSecurityDesc::GetSacl

Ruft Informationen zur Systemzugriffssteuerungsliste (SACL) aus der Sicherheitsbeschreibung ab.

bool GetSacl(
    CSacl* pSacl,
    bool* pbPresent = NULL,
    bool* pbDefaulted = NULL) const throw(...);

Parameter

pSacl
Zeigen Sie auf eine CSacl Struktur, in der eine Kopie der SACL des Sicherheitsdeskriptors gespeichert werden soll. Wenn eine System-ACL vorhanden ist, legt die Methode pSacl auf die Adresse der System-ACL des Sicherheitsdeskriptors fest. Wenn keine System-ACL vorhanden ist, wird kein Wert gespeichert.

pbPresent
Zeiger auf ein Kennzeichen, das die Methodensätze zum Angeben des Vorhandenseins einer System-ACL im angegebenen Sicherheitsdeskriptor festlegen. Wenn der Sicherheitsdeskriptor eine System-ACL enthält, wird dieser Parameter auf "true" festgelegt. Wenn der Sicherheitsdeskriptor keine System-ACL enthält, wird dieser Parameter auf "false" festgelegt.

pbDefaulted
Zeigen Sie auf ein Flag, das auf den Wert des SE_SACL_DEFAULTED Flags in der SECURITY_DESCRIPTOR_CONTROL Struktur festgelegt ist, wenn eine System-ACL für den Sicherheitsdeskriptor vorhanden ist.

Rückgabewert

Gibt true zurück, wenn die Methode erfolgreich ist, false, wenn sie fehlschlägt.

CSecurityDesc::IsDaclAutoInherited

Bestimmt, ob die diskretionäre Zugriffssteuerungsliste (ACCESS-Control List, DACL) so konfiguriert ist, dass die automatische Verteilung unterstützt wird.

bool IsDaclAutoInherited() const throw();

Rückgabewert

Gibt true zurück, wenn der Sicherheitsdeskriptor eine DACL enthält, die so eingerichtet ist, dass die automatische Verteilung von vererbbaren Zugriffssteuerungseinträgen (ACEs) auf vorhandene untergeordnete Objekte unterstützt wird. Andernfalls wird „False“ ausgegeben.

Hinweise

Das System legt dieses Bit fest, wenn er den automatischen Vererbungsalgorithmus für das Objekt und seine vorhandenen untergeordneten Objekte ausführt.

CSecurityDesc::IsDaclDefaulted

Bestimmt, ob der Sicherheitsdeskriptor mit einer standardmäßigen, diskretionären Zugriffssteuerungsliste (DACL) konfiguriert ist.

bool IsDaclDefaulted() const throw();

Rückgabewert

Gibt true zurück, wenn der Sicherheitsdeskriptor eine standardmäßige DACL enthält, andernfalls "false".

Hinweise

Dieses Kennzeichen kann sich darauf auswirken, wie das System die DACL im Hinblick auf die Zugriffssteuerungseintragsvererbung (Access-Control Entry, ACE) behandelt. Wenn beispielsweise der Ersteller eines Objekts keine DACL angibt, empfängt das Objekt die Standard-DACL vom Zugriffstoken des Erstellers. Das System ignoriert dieses Kennzeichen, wenn das SE_DACL_PRESENT Flag nicht festgelegt ist.

Dieses Flag wird verwendet, um zu bestimmen, wie die endgültige DACL für das Objekt berechnet werden soll und nicht physisch im Sicherheitsdeskriptor-Steuerelement des sicherungsfähigen Objekts gespeichert wird.

Verwenden Sie zum Festlegen dieses Flags die CSecurityDesc::SetDacl-Methode .

CSecurityDesc::IsDaclPresent

Bestimmt, ob der Sicherheitsdeskriptor eine diskretionäre Zugriffssteuerungsliste (Access Control List, DACL) enthält.

bool IsDaclPresent() const throw();

Rückgabewert

Gibt true zurück, wenn der Sicherheitsdeskriptor eine DACL enthält, andernfalls "false".

Hinweise

Wenn dieses Flag nicht festgelegt ist oder wenn dieses Flag festgelegt ist und die DACL NULL ist, ermöglicht der Sicherheitsdeskriptor den vollständigen Zugriff auf alle Benutzer.

Dieses Flag wird verwendet, um die von einem Aufrufer angegebenen Sicherheitsinformationen zu halten, bis der Sicherheitsdeskriptor einem sicherungsfähigen Objekt zugeordnet ist. Sobald der Sicherheitsdeskriptor einem sicherungsfähigen Objekt zugeordnet ist, wird das SE_DACL_PRESENT Flag immer im Sicherheitsdeskriptor-Steuerelement festgelegt.

Verwenden Sie zum Festlegen dieses Flags die CSecurityDesc::SetDacl-Methode .

CSecurityDesc::IsDaclProtected

Bestimmt, ob die diskretionäre Zugriffssteuerungsliste (ACCESS-Control List, DACL) so konfiguriert ist, dass Änderungen verhindert werden.

bool IsDaclProtected() const throw();

Rückgabewert

Gibt true zurück, wenn die DACL so konfiguriert ist, dass der Sicherheitsdeskriptor durch vererbbare Zugriffssteuerungseinträge (ACEs) geändert wird. Andernfalls wird „False“ ausgegeben.

Hinweise

Verwenden Sie zum Festlegen dieses Flags die CSecurityDesc::SetDacl-Methode .

Diese Methode unterstützt die automatische Verteilung von vererbbaren ACEs.

CSecurityDesc::IsGroupDefaulted

Bestimmt, ob standardmäßig die Gruppensicherheits-ID (GROUP Security Identifier, SID) des Sicherheitsdeskriptors festgelegt wurde.

bool IsGroupDefaulted() const throw();

Rückgabewert

Gibt "true" zurück, wenn anstelle des ursprünglichen Anbieters der Sicherheitsbeschreibung ein Standardmechanismus zurückgegeben wird, sofern die Gruppen-SID des Sicherheitsdeskriptors angegeben ist. Andernfalls wird „False“ ausgegeben.

Hinweise

Verwenden Sie zum Festlegen dieses Flags die CSecurityDesc::SetGroup-Methode .

CSecurityDesc::IsOwnerDefaulted

Bestimmt, ob die Sicherheits-ID (SID) des Sicherheitsdeskriptors standardmäßig festgelegt wurde.

bool IsOwnerDefaulted() const throw();

Rückgabewert

Gibt "true" zurück, wenn anstelle des ursprünglichen Anbieters der Sicherheitsbeschreibung ein Standardmechanismus zurückgegeben wird, vorausgesetzt, die Sid des Besitzers des Sicherheitsdeskriptors. Andernfalls wird „False“ ausgegeben.

Hinweise

Verwenden Sie zum Festlegen dieses Flags die CSecurityDesc::SetOwner-Methode .

CSecurityDesc::IsSaclAutoInherited

Bestimmt, ob die Systemzugriffssteuerungsliste (ACCESS-Control List, SACL) für die Unterstützung der automatischen Verteilung konfiguriert ist.

bool IsSaclAutoInherited() const throw();

Rückgabewert

Gibt true zurück, wenn der Sicherheitsdeskriptor eine SACL enthält, die eingerichtet ist, um die automatische Verteilung von vererbbaren Zugriffssteuerungseinträgen (ACEs) auf vorhandene untergeordnete Objekte zu unterstützen. Andernfalls wird „False“ ausgegeben.

Hinweise

Das System legt dieses Bit fest, wenn er den automatischen Vererbungsalgorithmus für das Objekt und seine vorhandenen untergeordneten Objekte ausführt.

CSecurityDesc::IsSaclDefaulted

Bestimmt, ob der Sicherheitsdeskriptor mit einer Standardmäßigen Systemzugriffssteuerungsliste (SACL) konfiguriert ist.

bool IsSaclDefaulted() const throw();

Rückgabewert

Gibt true zurück, wenn der Sicherheitsdeskriptor eine STANDARD-SACL enthält, andernfalls "false".

Hinweise

Dieses Kennzeichen kann sich auf die Behandlung der SACL im Hinblick auf die Zugriffssteuerungseintragsvererbung (ACCESS-Control Entry, ACE) auswirken. Das System ignoriert dieses Flag, wenn das SE_SACL_PRESENT Flag nicht festgelegt ist.

Verwenden Sie zum Festlegen dieses Flags die CSecurityDesc::SetSacl-Methode .

CSecurityDesc::IsSaclPresent

Bestimmt, ob der Sicherheitsdeskriptor eine Systemzugriffssteuerungsliste (SACL) enthält.

bool IsSaclPresent() const throw();

Rückgabewert

Gibt true zurück, wenn der Sicherheitsdeskriptor eine SACL enthält, andernfalls "false".

Hinweise

Verwenden Sie zum Festlegen dieses Flags die CSecurityDesc::SetSacl-Methode .

CSecurityDesc::IsSaclProtected

Bestimmt, ob die Systemzugriffssteuerungsliste (ACCESS-Control List, SACL) konfiguriert ist, um Änderungen zu verhindern.

bool IsSaclProtected() const throw();

Rückgabewert

Gibt true zurück, wenn die SACL so konfiguriert ist, dass die Sicherheitsbeschreibung durch vererbbare Zugriffssteuerungseinträge (ACEs) geändert wird. Andernfalls wird „False“ ausgegeben.

Hinweise

Verwenden Sie zum Festlegen dieses Flags die CSecurityDesc::SetSacl-Methode .

Diese Methode unterstützt die automatische Verteilung von vererbbaren ACEs.

CSecurityDesc::IsSelfRelative

Bestimmt, ob sich der Sicherheitsdeskriptor im selbstrelativen Format befindet.

bool IsSelfRelative() const throw();

Rückgabewert

Gibt "true" zurück, wenn sich der Sicherheitsdeskriptor im selbstrelativen Format mit allen Sicherheitsinformationen in einem zusammenhängenden Speicherblock befindet. Gibt false zurück, wenn der Sicherheitsdeskriptor im absoluten Format ist. Weitere Informationen finden Sie unter Absolute und Self-Relative Security Descriptors.

CSecurityDesc::MakeAbsolute

Rufen Sie diese Methode auf, um den Sicherheitsdeskriptor in absolutes Format zu konvertieren.

bool MakeAbsolute() throw(...);

Rückgabewert

Gibt true zurück, wenn die Methode erfolgreich ist, andernfalls "false".

Hinweise

Ein Sicherheitsdeskriptor im absoluten Format enthält Zeiger auf die darin enthaltenen Informationen und nicht die Informationen selbst. Ein Sicherheitsdeskriptor im selbstrelativen Format enthält die Informationen in einem zusammenhängenden Speicherblock. In einem selbstrelativen Sicherheitsdeskriptor startet eine SECURITY_DESCRIPTOR Struktur immer die Informationen, aber die anderen Komponenten des Sicherheitsdeskriptors können der Struktur in beliebiger Reihenfolge folgen. Anstatt Speicheradressen zu verwenden, werden die Komponenten des selbstrelativen Sicherheitsdeskriptors durch Offsets vom Anfang des Sicherheitsdeskriptors identifiziert. Dieses Format ist nützlich, wenn ein Sicherheitsdeskriptor auf einem Datenträger gespeichert oder über ein Kommunikationsprotokoll übertragen werden muss. Weitere Informationen finden Sie unter Absolute und Self-Relative Security Descriptors.

CSecurityDesc::MakeSelfRelative

Rufen Sie diese Methode auf, um den Sicherheitsdeskriptor in ein selbstrelatives Format zu konvertieren.

bool MakeSelfRelative() throw(...);

Rückgabewert

Gibt true zurück, wenn die Methode erfolgreich ist, andernfalls "false".

Hinweise

Ein Sicherheitsdeskriptor im absoluten Format enthält Zeiger auf die darin enthaltenen Informationen, anstatt die Informationen selbst zu enthalten. Ein Sicherheitsdeskriptor im selbstrelativen Format enthält die Informationen in einem zusammenhängenden Speicherblock. In einem selbstrelativen Sicherheitsdeskriptor startet eine SECURITY_DESCRIPTOR Struktur immer die Informationen, aber die anderen Komponenten des Sicherheitsdeskriptors können der Struktur in beliebiger Reihenfolge folgen. Anstatt Speicheradressen zu verwenden, werden die Komponenten der Sicherheitsbeschreibung durch Offsets vom Anfang der Sicherheitsbeschreibung identifiziert. Dieses Format ist nützlich, wenn ein Sicherheitsdeskriptor auf einem Datenträger gespeichert oder über ein Kommunikationsprotokoll übertragen werden muss. Weitere Informationen finden Sie unter Absolute und Self-Relative Security Descriptors.

CSecurityDesc::operator =

Zuweisungsoperator.

CSecurityDesc& operator= (const SECURITY_DESCRIPTOR& rhs) throw(...);
CSecurityDesc& operator= (const CSecurityDesc& rhs) throw(...);

Parameter

rhs
Die SECURITY_DESCRIPTOR Struktur oder CSecurityDesc das Objekt, die dem CSecurityDesc Objekt zugewiesen werden soll.

Rückgabewert

Gibt das aktualisierte Objekt zurück CSecurityDesc .

CSecurityDesc::operator const SECURITY_DESCRIPTOR *

Wandelt einen Wert in einen Zeiger auf die SECURITY_DESCRIPTOR Struktur um.

operator const SECURITY_DESCRIPTOR *() const throw();

CSecurityDesc::SetControl

Legt die Steuerungsbits einer Sicherheitsbeschreibung fest.

bool SetControl(
    SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
    SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet) throw();

Parameter

ControlBitsOfInterest
Eine SECURITY_DESCRIPTOR_CONTROL Maske, die die festzulegenden Steuerelementbits angibt. Eine Liste der Flags, die festgelegt werden können, finden Sie unter SetSecurityDescriptorControl.

ControlBitsToSet
Eine SECURITY_DESCRIPTOR_CONTROL Maske, die die neuen Werte für die Steuerelementbits angibt, die durch das ControlBitsOfInterest-Mask angegeben werden. Dieser Parameter kann eine Kombination der Flags sein, die für den Parameter ControlBitsOfInterest aufgeführt sind.

Rückgabewert

Gibt bei Erfolg true zurück, bei einem Fehler false.

Hinweise

Diese Methode ruft SetSecurityDescriptorControl auf.

CSecurityDesc::SetDacl

Legt Informationen in einer diskretionären Zugriffssteuerungsliste (DACL) fest. Wenn eine DACL bereits im Sicherheitsdeskriptor vorhanden ist, wird sie ersetzt.

inline void SetDacl(
    bool bPresent = true,
    bool bDefaulted = false) throw(...);

inline void SetDacl(
    const CDacl& Dacl,
    bool bDefaulted = false) throw(...);

Parameter

Dacl
Verweis auf ein CDacl Objekt, das die DACL für den Sicherheitsdeskriptor angibt. Dieser Parameter darf nicht NULL sein. Um eine NULL-DACL im Sicherheitsdeskriptor festzulegen, sollte die erste Form der Methode mit "bPresent" auf "false" verwendet werden.

bPresent
Gibt ein Flag an, das das Vorhandensein einer DACL im Sicherheitsdeskriptor angibt. Wenn dieser Parameter true ist, legt die Methode das SE_DACL_PRESENT Flag in der SECURITY_DESCRIPTOR_CONTROL Struktur fest und verwendet die Werte in den Parametern Dacl und bDefaulted . Wenn die Methode "false" ist, wird die SE_DACL_PRESENT-Kennzeichnung gelöscht, und "bDefaulted " wird ignoriert.

bDefaulted
Gibt ein Flag an, das die Quelle der DACL angibt. Wenn dieses Flag "true" ist, wurde die DACL von einem Standardmechanismus abgerufen. Wenn false, wurde die DACL explizit von einem Benutzer angegeben. Die Methode speichert diesen Wert im SE_DACL_DEFAULTED Flag der SECURITY_DESCRIPTOR_CONTROL Struktur. Wenn dieser Parameter nicht angegeben ist, wird das SE_DACL_DEFAULTED Flag gelöscht.

Rückgabewert

Gibt bei Erfolg true zurück, bei einem Fehler false.

Hinweise

Es gibt einen wichtigen Unterschied zwischen einer leeren und einer nicht vorhandenen DACL. Wenn eine DACL leer ist, enthält sie keine Zugriffssteuerungseinträge, und es wurden keine Zugriffsrechte explizit gewährt. Daher wird der Zugriff auf das Objekt implizit verweigert. Wenn ein Objekt keine DACL hat, wird dem Objekt hingegen kein Schutz zugewiesen, und jede Zugriffsanforderung wird gewährt.

CSecurityDesc::SetGroup

Legt die primären Gruppeninformationen eines absoluten Formatsicherheitsdeskriptors fest, wobei alle primären Gruppeninformationen ersetzt werden, die bereits vorhanden sind.

bool SetGroup(const CSid& Sid, bool bDefaulted = false) throw(...);

Parameter

Sid
Verweis auf ein CSid-Objekt für die neue primäre Gruppe des Sicherheitsdeskriptors. Dieser Parameter darf nicht NULL sein. Ein Sicherheitsdeskriptor kann als nicht mit DACL oder SACL gekennzeichnet werden, aber er muss eine Gruppe und einen Besitzer haben, auch wenn es sich dabei um die NULL-SID (eine integrierte SID mit besonderer Bedeutung) handelt.

bDefaulted
Gibt an, ob die primären Gruppeninformationen von einem Standardmechanismus abgeleitet wurden. Wenn dieser Wert "true" ist, handelt es sich um Standardinformationen, und die Methode speichert diesen Wert als SE_GROUP_DEFAULTED Flag in der SECURITY_DESCRIPTOR_CONTROL Struktur. Wenn dieser Parameter null ist, wird das SE_GROUP_DEFAULTED Flag gelöscht.

Rückgabewert

Gibt bei Erfolg true zurück, bei einem Fehler false.

CSecurityDesc::SetOwner

Legt die Besitzerinformationen eines absoluten Formatsicherheitsdeskriptors fest. Es ersetzt alle besitzerinformationen, die bereits vorhanden sind.

bool SetOwner(const CSid& Sid, bool bDefaulted = false) throw(...);

Parameter

Sid
Das CSid-Objekt für den neuen primären Besitzer des Sicherheitsdeskriptors. Dieser Parameter darf nicht NULL sein.

bDefaulted
Gibt an, ob die Besitzerinformationen von einem Standardmechanismus abgeleitet werden. Wenn dieser Wert "true" ist, handelt es sich um Standardinformationen. Die Methode speichert diesen Wert als SE_OWNER_DEFAULTED Flag in der SECURITY_DESCRIPTOR_CONTROL Struktur. Wenn dieser Parameter null ist, wird das SE_OWNER_DEFAULTED Flag gelöscht.

Rückgabewert

Gibt bei Erfolg true zurück, bei einem Fehler false.

CSecurityDesc::SetSacl

Legt Informationen in einer Systemzugriffssteuerungsliste (SACL) fest. Wenn eine SACL bereits im Sicherheitsdeskriptor vorhanden ist, wird sie ersetzt.

bool SetSacl(const CSacl& Sacl, bool bDefaulted = false) throw(...);

Parameter

Sacl
Zeigen Sie auf ein CSacl Objekt, das die SACL für den Sicherheitsdeskriptor angibt. Dieser Parameter darf nicht NULL sein und muss ein CSacl-Objekt sein. Im Gegensatz zu DACLs gibt es keinen Unterschied zwischen NULL und einer leeren SACL, da SACL-Objekte keine Zugriffsrechte angeben, nur Überwachungsinformationen.

bDefaulted
Gibt ein Flag an, das die Quelle der SACL angibt. Wenn dieses Flag "true" ist, wurde die SACL von einem Standardmechanismus abgerufen. Wenn false, wurde die SACL explizit von einem Benutzer angegeben. Die Methode speichert diesen Wert im SE_SACL_DEFAULTED Flag der SECURITY_DESCRIPTOR_CONTROL Struktur. Wenn dieser Parameter nicht angegeben ist, wird das SE_SACL_DEFAULTED Flag gelöscht.

Rückgabewert

Gibt bei Erfolg true zurück, bei einem Fehler false.

CSecurityDesc::ToString

Konvertiert einen Sicherheitsdeskriptor in ein Zeichenfolgenformat.

bool ToString(
    CString* pstr, SECURITY_INFORMATION si = OWNER_SECURITY_INFORMATION |
    GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION |
    SACL_SECURITY_INFORMATION) const throw(...);

Parameter

Pstr
Zeiger auf eine mit Null beendete Zeichenfolge, die den Sicherheitsdeskriptor für das Zeichenfolgenformat empfängt.

Si
Gibt eine Kombination aus SECURITY_INFORMATION Bitkennzeichnungen an, um die Komponenten des Sicherheitsdeskriptors anzugeben, die in die Ausgabezeichenfolge eingeschlossen werden sollen.

Rückgabewert

Gibt bei Erfolg true zurück, bei einem Fehler false.

Hinweise

Sobald sich der Sicherheitsdeskriptor im Zeichenfolgenformat befindet, kann er einfacher gespeichert oder übertragen werden. Verwenden Sie die CSecurityDesc::FromString Methode, um die Zeichenfolge wieder in einen Sicherheitsdeskriptor zu konvertieren.

Der si-Parameter kann die folgenden SECURITY_INFORMATION Flags enthalten:

Wert Bedeutung
OWNER_SECURITY_INFORMATION Schließen Sie den Besitzer ein.
GROUP_SECURITY_INFORMATION Schließen Sie die primäre Gruppe ein.
DACL_SECURITY_INFORMATION Schließen Sie die DACL ein.
SACL_SECURITY_INFORMATION Schließen Sie die SACL ein.

Wenn die DACL NULL ist und das SE_DACL_PRESENT Steuerelementbit im Eingabesicherheitsdeskriptor festgelegt ist, schlägt die Methode fehl.

Wenn die DACL NULL ist und das SE_DACL_PRESENT Steuerelementbit nicht im Eingabesicherheitsdeskriptor festgelegt ist, verfügt die resultierende Sicherheitsdeskriptorzeichenfolge nicht über eine D:-Komponente. Weitere Informationen finden Sie unter Sicherheitsdeskriptor-Zeichenfolgenformat .

Diese Methode ruft ConvertStringSecurityDescriptorToSecurityDescriptor auf.

Siehe auch

Sicherheitsbeispiel
SECURITY_DESCRIPTOR
Klassenübersicht
Globale Sicherheitsfunktionen