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 Steuerbits eines Sicherheitsdeskriptors 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 Steuerbits eines Sicherheitsdeskriptors 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