Classe CSecurityDesc
Questa classe è un wrapper per la SECURITY_DESCRIPTOR
struttura.
Importante
Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.
Sintassi
class CSecurityDesc
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CSecurityDesc::CSecurityDesc | Costruttore. |
CSecurityDesc::~CSecurityDesc | Distruttore. |
Metodi pubblici
Nome | Descrizione |
---|---|
CSecurityDesc::FromString | Converte un descrittore di sicurezza in formato stringa in un descrittore di sicurezza funzionale valido. |
CSecurityDesc::GetControl | Recupera le informazioni sul controllo dal descrittore di sicurezza. |
CSecurityDesc::GetDacl | Recupera le informazioni dell'elenco di controllo di accesso discrezionale (DACL) dal descrittore di sicurezza. |
CSecurityDesc::GetGroup | Recupera le informazioni del gruppo primario dal descrittore di sicurezza. |
CSecurityDesc::GetOwner | Recupera informazioni sul proprietario dal descrittore di sicurezza. |
CSecurityDesc::GetPSECURITY_DESCRIPTOR | Restituisce un puntatore alla SECURITY_DESCRIPTOR struttura. |
CSecurityDesc::GetSacl | Recupera le informazioni dell'elenco di controllo di accesso al sistema (SACL) dal descrittore di sicurezza. |
CSecurityDesc::IsDaclAutoInherited | Determina se l'elenco DACL è configurato per supportare la propagazione automatica. |
CSecurityDesc::IsDaclDefaulted | Determina se il descrittore di sicurezza è configurato con un DACL predefinito. |
CSecurityDesc::IsDaclPresent | Determina se il descrittore di sicurezza contiene un daCL. |
CSecurityDesc::IsDaclProtected | Determina se l'elenco DACL è configurato per impedire modifiche. |
CSecurityDesc::IsGroupDefaulted | Determina se l'identificatore di sicurezza del descrittore di sicurezza (SID) è stato impostato per impostazione predefinita. |
CSecurityDesc::IsOwnerDefaulted | Determina se il SID proprietario del descrittore di sicurezza è stato impostato per impostazione predefinita. |
CSecurityDesc::IsSaclAutoInherited | Determina se sacl è configurato per supportare la propagazione automatica. |
CSecurityDesc::IsSaclDefaulted | Determina se il descrittore di sicurezza è configurato con un sacl predefinito. |
CSecurityDesc::IsSaclPresent | Determina se il descrittore di sicurezza contiene un oggetto SACL. |
CSecurityDesc::IsSaclProtected | Determina se l'elenco SACL è configurato per impedire modifiche. |
CSecurityDesc::IsSelfRelative | Determina se il descrittore di sicurezza è in formato auto-relativo. |
CSecurityDesc::MakeAbsolute | Chiamare questo metodo per convertire il descrittore di sicurezza in formato assoluto. |
CSecurityDesc::MakeSelfRelative | Chiamare questo metodo per convertire il descrittore di sicurezza in formato auto-relativo. |
CSecurityDesc::SetControl | Imposta i bit di controllo di un descrittore di sicurezza. |
CSecurityDesc::SetDacl | Imposta le informazioni in un daCL. Se un DACL è già presente nel descrittore di sicurezza, viene sostituito. |
CSecurityDesc::SetGroup | Imposta le informazioni di gruppo primarie di un descrittore di sicurezza del formato assoluto, sostituendo eventuali informazioni del gruppo primario già presenti. |
CSecurityDesc::SetOwner | Imposta le informazioni sul proprietario di un descrittore di sicurezza del formato assoluto, sostituendo eventuali informazioni sul proprietario già presenti. |
CSecurityDesc::SetSacl | Imposta le informazioni in un oggetto SACL. Se un sacl è già presente nel descrittore di sicurezza, viene sostituito. |
CSecurityDesc::ToString | Converte un descrittore di sicurezza in un formato stringa. |
Operatori pubblici
Nome | Descrizione |
---|---|
CSecurityDesc::operator const SECURITY_DESCRIPTOR * | Restituisce un puntatore alla SECURITY_DESCRIPTOR struttura. |
CSecurityDesc::operator = | Operatore di assegnazione. |
Osservazioni:
La SECURITY_DESCRIPTOR
struttura contiene le informazioni di sicurezza associate a un oggetto . Le applicazioni usano questa struttura per impostare ed eseguire query sullo stato di sicurezza di un oggetto. Vedere anche AtlGetSecurityDescriptor.
Le applicazioni non devono modificare direttamente la SECURITY_DESCRIPTOR
struttura e devono invece usare i metodi della classe forniti.
Per un'introduzione al modello di controllo di accesso in Windows, vedere Controllo di accesso in Windows SDK.
Requisiti
Intestazione: atlsecurity.h
CSecurityDesc::CSecurityDesc
Costruttore.
CSecurityDesc() throw();
CSecurityDesc(const CSecurityDesc& rhs) throw(... );
CSecurityDesc(const SECURITY_DESCRIPTOR& rhs) throw(...);
Parametri
rhs
Oggetto CSecurityDesc
o SECURITY_DESCRIPTOR
struttura da assegnare al nuovo CSecurityDesc
oggetto.
Osservazioni:
L'oggetto CSecurityDesc
può essere creato facoltativamente utilizzando una SECURITY_DESCRIPTOR
struttura o un oggetto definito CSecurityDesc
in precedenza.
CSecurityDesc::~CSecurityDesc
Distruttore.
virtual ~CSecurityDesc() throw();
Osservazioni:
Il distruttore libera tutte le risorse allocate.
CSecurityDesc::FromString
Converte un descrittore di sicurezza in formato stringa in un descrittore di sicurezza funzionale valido.
bool FromString(LPCTSTR pstr) throw(...);
Parametri
pstr
Puntatore a una stringa con terminazione Null contenente il descrittore di sicurezza in formato stringa da convertire.
Valore restituito
Restituisce true in caso di esito positivo. Genera un'eccezione in caso di errore.
Osservazioni:
La stringa può essere creata usando CSecurityDesc::ToString. La conversione del descrittore di sicurezza in una stringa semplifica l'archiviazione e la trasmissione.
Questo metodo chiama ConvertStringSecurityDescriptorToSecurityDescriptor.
CSecurityDesc::GetControl
Recupera le informazioni sul controllo dal descrittore di sicurezza.
bool GetControl(SECURITY_DESCRIPTOR_CONTROL* psdc) const throw();
Parametri
psdc
Puntatore a una SECURITY_DESCRIPTOR_CONTROL
struttura che riceve le informazioni di controllo del descrittore di sicurezza.
Valore restituito
Restituisce true se il metodo ha esito positivo, false se ha esito negativo.
Osservazioni:
Questo metodo chiama GetSecurityDescriptorControl.
CSecurityDesc::GetDacl
Recupera le informazioni dell'elenco di controllo di accesso discrezionale (DACL) dal descrittore di sicurezza.
bool GetDacl(
CDacl* pDacl,
bool* pbPresent = NULL,
bool* pbDefaulted = NULL) const throw(...);
Parametri
pDacl
Puntatore a una CDacl
struttura in cui archiviare una copia dell'elenco DACL del descrittore di sicurezza. Se esiste un ACL discrezionale, il metodo imposta pDacl sull'indirizzo dell'ACL discrezionale del descrittore di sicurezza. Se non esiste un elenco di controllo di accesso discrezionale, non viene archiviato alcun valore.
pbPresent
Puntatore a un valore che indica la presenza di un ACL discrezionale nel descrittore di sicurezza specificato. Se il descrittore di sicurezza contiene un elenco di controllo di accesso discrezionale, questo parametro viene impostato su true. Se il descrittore di sicurezza non contiene un ACL discrezionale, questo parametro è impostato su false.
pbDefaulted
Puntatore a un flag impostato sul valore del flag SE_DACL_DEFAULTED nella SECURITY_DESCRIPTOR_CONTROL
struttura se esiste un ACL discrezionale per il descrittore di sicurezza. Se questo flag è true, l'ACL discrezionale è stato recuperato da un meccanismo predefinito; se false, l'ACL discrezionale è stato specificato in modo esplicito da un utente.
Valore restituito
Restituisce true se il metodo ha esito positivo, false se ha esito negativo.
CSecurityDesc::GetGroup
Recupera le informazioni del gruppo primario dal descrittore di sicurezza.
bool GetGroup(
CSid* pSid,
bool* pbDefaulted = NULL) const throw(...);
Parametri
Psid
Puntatore a un CSid (identificatore di sicurezza) che riceve una copia del gruppo archiviato nell'elenco CDacl.
pbDefaulted
Puntatore a un flag impostato sul valore del flag SE_GROUP_DEFAULTED nella SECURITY_DESCRIPTOR_CONTROL
struttura quando il metodo restituisce.
Valore restituito
Restituisce true se il metodo ha esito positivo, false se ha esito negativo.
CSecurityDesc::GetOwner
Recupera informazioni sul proprietario dal descrittore di sicurezza.
bool GetOwner(
CSid* pSid,
bool* pbDefaulted = NULL) const throw(...);
Parametri
Psid
Puntatore a un CSid (identificatore di sicurezza) che riceve una copia del gruppo archiviato nell'elenco CDacl.
pbDefaulted
Puntatore a un flag impostato sul valore del flag SE_OWNER_DEFAULTED nella SECURITY_DESCRIPTOR_CONTROL
struttura quando il metodo restituisce.
Valore restituito
Restituisce true se il metodo ha esito positivo, false se ha esito negativo.
CSecurityDesc::GetPSECURITY_DESCRIPTOR
Restituisce un puntatore alla SECURITY_DESCRIPTOR
struttura.
const SECURITY_DESCRIPTOR* GetPSECURITY_DESCRIPTOR() const throw();
Valore restituito
Restituisce un puntatore alla struttura SECURITY_DESCRIPTOR .
CSecurityDesc::GetSacl
Recupera le informazioni dell'elenco di controllo di accesso al sistema (SACL) dal descrittore di sicurezza.
bool GetSacl(
CSacl* pSacl,
bool* pbPresent = NULL,
bool* pbDefaulted = NULL) const throw(...);
Parametri
pSacl
Puntatore a una CSacl
struttura in cui archiviare una copia dell'elenco SACL del descrittore di sicurezza. Se esiste un ACL di sistema, il metodo imposta pSacl sull'indirizzo dell'ACL di sistema del descrittore di sicurezza. Se non esiste un ACL di sistema, non viene archiviato alcun valore.
pbPresent
Puntatore a un flag impostato dal metodo per indicare la presenza di un ACL di sistema nel descrittore di sicurezza specificato. Se il descrittore di sicurezza contiene un ACL di sistema, questo parametro è impostato su true. Se il descrittore di sicurezza non contiene un ACL di sistema, questo parametro è impostato su false.
pbDefaulted
Puntatore a un flag impostato sul valore del flag SE_SACL_DEFAULTED nella SECURITY_DESCRIPTOR_CONTROL
struttura se esiste un ACL di sistema per il descrittore di sicurezza.
Valore restituito
Restituisce true se il metodo ha esito positivo, false se ha esito negativo.
CSecurityDesc::IsDaclAutoInherited
Determina se l'elenco di controllo di accesso discrezionale (DACL) è configurato per supportare la propagazione automatica.
bool IsDaclAutoInherited() const throw();
Valore restituito
Restituisce true se il descrittore di sicurezza contiene un DACL configurato per supportare la propagazione automatica delle voci di controllo di accesso ereditabili (ACL) a oggetti figlio esistenti. In caso contrario, restituisce false.
Osservazioni:
Il sistema imposta questo bit quando esegue l'algoritmo di ereditarietà automatica per l'oggetto e i relativi oggetti figlio esistenti.
CSecurityDesc::IsDaclDefaulted
Determina se il descrittore di sicurezza è configurato con un elenco di controllo di accesso discrezionale (DACL) predefinito.
bool IsDaclDefaulted() const throw();
Valore restituito
Restituisce true se il descrittore di sicurezza contiene un DACL predefinito, false in caso contrario.
Osservazioni:
Questo flag può influire sul modo in cui il sistema gestisce l'daCL, in relazione all'ereditarietà della voce di controllo di accesso (ACE). Ad esempio, se l'autore di un oggetto non specifica un DACL, l'oggetto riceve l'daCL predefinito dal token di accesso dell'autore. Il sistema ignora questo flag se il flag SE_DACL_PRESENT non è impostato.
Questo flag viene usato per determinare la modalità di calcolo dell'oggetto DACL finale e non viene archiviato fisicamente nel controllo del descrittore di sicurezza dell'oggetto a protezione diretta.
Per impostare questo flag, usare il metodo CSecurityDesc::SetDacl .
CSecurityDesc::IsDaclPresent
Determina se il descrittore di sicurezza contiene un elenco di controllo di accesso discrezionale (DACL).
bool IsDaclPresent() const throw();
Valore restituito
Restituisce true se il descrittore di sicurezza contiene un DACL, false in caso contrario.
Osservazioni:
Se questo flag non è impostato o se questo flag è impostato e daCL è NULL, il descrittore di sicurezza consente l'accesso completo a tutti.
Questo flag viene usato per contenere le informazioni di sicurezza specificate da un chiamante fino a quando il descrittore di sicurezza non è associato a un oggetto a protezione diretta. Quando il descrittore di sicurezza è associato a un oggetto a protezione diretta, il flag SE_DACL_PRESENT viene sempre impostato nel controllo del descrittore di sicurezza.
Per impostare questo flag, usare il metodo CSecurityDesc::SetDacl .
CSecurityDesc::IsDaclProtected
Determina se l'elenco di controllo di accesso discrezionale (DACL) è configurato per impedire modifiche.
bool IsDaclProtected() const throw();
Valore restituito
Restituisce true se l'elenco DACL è configurato per impedire che il descrittore di sicurezza venga modificato da voci di controllo di accesso ereditabili. In caso contrario, restituisce false.
Osservazioni:
Per impostare questo flag, usare il metodo CSecurityDesc::SetDacl .
Questo metodo supporta la propagazione automatica degli ACL ereditabili.
CSecurityDesc::IsGroupDefaulted
Determina se l'identificatore di sicurezza del descrittore di sicurezza (SID) è stato impostato per impostazione predefinita.
bool IsGroupDefaulted() const throw();
Valore restituito
Restituisce true se un meccanismo predefinito, anziché il provider originale del descrittore di sicurezza, ha fornito il SID del descrittore di sicurezza. In caso contrario, restituisce false.
Osservazioni:
Per impostare questo flag, usare il metodo CSecurityDesc::SetGroup .
CSecurityDesc::IsOwnerDefaulted
Determina se l'identificatore di sicurezza del descrittore di sicurezza (SID) è stato impostato per impostazione predefinita.
bool IsOwnerDefaulted() const throw();
Valore restituito
Restituisce true se un meccanismo predefinito, anziché il provider originale del descrittore di sicurezza, ha fornito il SID proprietario del descrittore di sicurezza. In caso contrario, restituisce false.
Osservazioni:
Per impostare questo flag, usare il metodo CSecurityDesc::SetOwner .
CSecurityDesc::IsSaclAutoInherited
Determina se l'elenco di controllo di accesso al sistema (SACL) è configurato per supportare la propagazione automatica.
bool IsSaclAutoInherited() const throw();
Valore restituito
Restituisce true se il descrittore di sicurezza contiene un oggetto SACL configurato per supportare la propagazione automatica delle voci di controllo di accesso ereditabili (ACL) a oggetti figlio esistenti. In caso contrario, restituisce false.
Osservazioni:
Il sistema imposta questo bit quando esegue l'algoritmo di ereditarietà automatica per l'oggetto e i relativi oggetti figlio esistenti.
CSecurityDesc::IsSaclDefaulted
Determina se il descrittore di sicurezza è configurato con un elenco di controllo di accesso al sistema predefinito (SACL).
bool IsSaclDefaulted() const throw();
Valore restituito
Restituisce true se il descrittore di sicurezza contiene un valore SACL predefinito, false in caso contrario.
Osservazioni:
Questo flag può influire sul modo in cui il sistema gestisce sacl, in relazione all'ereditarietà della voce di controllo di accesso (ACE). Il sistema ignora questo flag se il flag SE_SACL_PRESENT non è impostato.
Per impostare questo flag, usare il metodo CSecurityDesc::SetSacl .
CSecurityDesc::IsSaclPresent
Determina se il descrittore di sicurezza contiene un elenco di controllo di accesso di sistema (SACL).
bool IsSaclPresent() const throw();
Valore restituito
Restituisce true se il descrittore di sicurezza contiene un oggetto SACL, false in caso contrario.
Osservazioni:
Per impostare questo flag, usare il metodo CSecurityDesc::SetSacl .
CSecurityDesc::IsSaclProtected
Determina se l'elenco di controllo di accesso al sistema (SACL) è configurato per impedire modifiche.
bool IsSaclProtected() const throw();
Valore restituito
Restituisce true se sacl è configurato per impedire che il descrittore di sicurezza venga modificato da voci ereditabili di controllo di accesso . In caso contrario, restituisce false.
Osservazioni:
Per impostare questo flag, usare il metodo CSecurityDesc::SetSacl .
Questo metodo supporta la propagazione automatica degli ACL ereditabili.
CSecurityDesc::IsSelfRelative
Determina se il descrittore di sicurezza è in formato auto-relativo.
bool IsSelfRelative() const throw();
Valore restituito
Restituisce true se il descrittore di sicurezza è in formato auto-relativo con tutte le informazioni di sicurezza in un blocco contiguo di memoria. Restituisce false se il descrittore di sicurezza è in formato assoluto. Per altre informazioni, vedere Descrittori di sicurezza assoluti e auto-relativi.
CSecurityDesc::MakeAbsolute
Chiamare questo metodo per convertire il descrittore di sicurezza in formato assoluto.
bool MakeAbsolute() throw(...);
Valore restituito
Restituisce true se il metodo ha esito positivo, false in caso contrario.
Osservazioni:
Un descrittore di sicurezza in formato assoluto contiene puntatori alle informazioni contenute, anziché le informazioni stesse. Un descrittore di sicurezza in formato auto-relativo contiene le informazioni in un blocco contiguo di memoria. In un descrittore di sicurezza auto-relativo, una SECURITY_DESCRIPTOR
struttura avvia sempre le informazioni, ma gli altri componenti del descrittore di sicurezza possono seguire la struttura in qualsiasi ordine. Anziché usare gli indirizzi di memoria, i componenti del descrittore di sicurezza auto-relativo sono identificati da offset dall'inizio del descrittore di sicurezza. Questo formato è utile quando un descrittore di sicurezza deve essere archiviato su un disco o trasmesso tramite un protocollo di comunicazione. Per altre informazioni, vedere Descrittori di sicurezza assoluti e auto-relativi.
CSecurityDesc::MakeSelfRelative
Chiamare questo metodo per convertire il descrittore di sicurezza in formato auto-relativo.
bool MakeSelfRelative() throw(...);
Valore restituito
Restituisce true se il metodo ha esito positivo, false in caso contrario.
Osservazioni:
Un descrittore di sicurezza in formato assoluto contiene puntatori alle informazioni contenute, anziché contenere le informazioni stesse. Un descrittore di sicurezza in formato auto-relativo contiene le informazioni in un blocco contiguo di memoria. In un descrittore di sicurezza auto-relativo, una SECURITY_DESCRIPTOR
struttura avvia sempre le informazioni, ma gli altri componenti del descrittore di sicurezza possono seguire la struttura in qualsiasi ordine. Anziché usare gli indirizzi di memoria, i componenti del descrittore di sicurezza vengono identificati da offset dall'inizio del descrittore di sicurezza. Questo formato è utile quando un descrittore di sicurezza deve essere archiviato su un disco o trasmesso tramite un protocollo di comunicazione. Per altre informazioni, vedere Descrittori di sicurezza assoluti e auto-relativi.
CSecurityDesc::operator =
Operatore di assegnazione.
CSecurityDesc& operator= (const SECURITY_DESCRIPTOR& rhs) throw(...);
CSecurityDesc& operator= (const CSecurityDesc& rhs) throw(...);
Parametri
rhs
Struttura SECURITY_DESCRIPTOR
o CSecurityDesc
oggetto da assegnare all'oggetto CSecurityDesc
.
Valore restituito
Restituisce l'oggetto aggiornato CSecurityDesc
.
CSecurityDesc::operator const SECURITY_DESCRIPTOR *
Esegue il cast di un valore a un puntatore alla SECURITY_DESCRIPTOR
struttura.
operator const SECURITY_DESCRIPTOR *() const throw();
CSecurityDesc::SetControl
Imposta i bit di controllo di un descrittore di sicurezza.
bool SetControl(
SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet) throw();
Parametri
ControlBitsOfInterest
Maschera SECURITY_DESCRIPTOR_CONTROL che indica i bit di controllo da impostare. Per un elenco dei flag che è possibile impostare, vedere SetSecurityDescriptorControl.
ControlBitsToSet
Maschera SECURITY_DESCRIPTOR_CONTROL che indica i nuovi valori per i bit di controllo specificati dalla maschera ControlBitsOfInterest . Questo parametro può essere una combinazione dei flag elencati per il parametro ControlBitsOfInterest .
Valore restituito
Restituisce true se l'operazione ha esito positivo, false in caso di esito negativo.
Osservazioni:
Questo metodo chiama SetSecurityDescriptorControl.
CSecurityDesc::SetDacl
Imposta le informazioni in un elenco di controllo di accesso discrezionale (DACL). Se un DACL è già presente nel descrittore di sicurezza, viene sostituito.
inline void SetDacl(
bool bPresent = true,
bool bDefaulted = false) throw(...);
inline void SetDacl(
const CDacl& Dacl,
bool bDefaulted = false) throw(...);
Parametri
Dacl
Riferimento a un CDacl
oggetto che specifica l'elenco DACL per il descrittore di sicurezza. Questo parametro non deve essere NULL. Per impostare un DACL NULL nel descrittore di sicurezza, è necessario usare il primo formato del metodo con bPresent impostato su false.
bPresent
Specifica un flag che indica la presenza di un DACL nel descrittore di sicurezza. Se questo parametro è true, il metodo imposta il flag SE_DACL_PRESENT nella SECURITY_DESCRIPTOR_CONTROL
struttura e usa i valori nei parametri Dacl e bDefaulted . Se è false, il metodo cancella il flag SE_DACL_PRESENT e bDefaulted viene ignorato .
bDefaulted
Specifica un flag che indica l'origine dell'elenco DACL. Se questo flag è true, il DACL è stato recuperato da un meccanismo predefinito. Se false, l'elenco DACL è stato specificato in modo esplicito da un utente. Il metodo archivia questo valore nel flag SE_DACL_DEFAULTED della SECURITY_DESCRIPTOR_CONTROL
struttura. Se questo parametro non viene specificato, il flag SE_DACL_DEFAULTED viene cancellato.
Valore restituito
Restituisce true se l'operazione ha esito positivo, false in caso di esito negativo.
Osservazioni:
Esiste una differenza importante tra un daCL vuoto e un DACL inesistente. Quando un daCL è vuoto, non contiene voci di controllo di accesso e non sono stati concessi diritti di accesso in modo esplicito. Di conseguenza, l'accesso all'oggetto viene negato in modo implicito. Quando un oggetto non ha un DACL, d'altra parte, non viene assegnata alcuna protezione all'oggetto e viene concessa qualsiasi richiesta di accesso.
CSecurityDesc::SetGroup
Imposta le informazioni di gruppo primarie di un descrittore di sicurezza del formato assoluto, sostituendo eventuali informazioni del gruppo primario già presenti.
bool SetGroup(const CSid& Sid, bool bDefaulted = false) throw(...);
Parametri
Sid
Riferimento a un oggetto CSid per il nuovo gruppo primario del descrittore di sicurezza. Questo parametro non deve essere NULL. Un descrittore di sicurezza può essere contrassegnato come non avere un DACL o un SACL, ma deve avere un gruppo e un proprietario, anche questi sono il SID NULL (che è un SID predefinito con un significato speciale).
bDefaulted
Indica se le informazioni del gruppo primario sono state derivate da un meccanismo predefinito. Se questo valore è true, si tratta di informazioni predefinite e il metodo archivia questo valore come flag SE_GROUP_DEFAULTED nella SECURITY_DESCRIPTOR_CONTROL
struttura. Se questo parametro è zero, il flag SE_GROUP_DEFAULTED viene cancellato.
Valore restituito
Restituisce true se l'operazione ha esito positivo, false in caso di esito negativo.
CSecurityDesc::SetOwner
Imposta le informazioni sul proprietario di un descrittore di sicurezza del formato assoluto. Sostituisce tutte le informazioni sul proprietario già presenti.
bool SetOwner(const CSid& Sid, bool bDefaulted = false) throw(...);
Parametri
Sid
Oggetto CSid per il nuovo proprietario primario del descrittore di sicurezza. Questo parametro non deve essere NULL.
bDefaulted
Indica se le informazioni sul proprietario sono derivate da un meccanismo predefinito. Se questo valore è true, si tratta di informazioni predefinite. Il metodo archivia questo valore come flag SE_OWNER_DEFAULTED nella SECURITY_DESCRIPTOR_CONTROL
struttura. Se questo parametro è zero, il flag SE_OWNER_DEFAULTED viene cancellato.
Valore restituito
Restituisce true se l'operazione ha esito positivo, false in caso di esito negativo.
CSecurityDesc::SetSacl
Imposta le informazioni in un elenco di controllo di accesso di sistema (SACL). Se un sacl è già presente nel descrittore di sicurezza, viene sostituito.
bool SetSacl(const CSacl& Sacl, bool bDefaulted = false) throw(...);
Parametri
Sacl
Puntatore a un CSacl
oggetto che specifica sacl per il descrittore di sicurezza. Questo parametro non deve essere NULL e deve essere un oggetto CSacl. A differenza delle licenze DACL, non esiste alcuna differenza tra NULL e sacl vuoto, poiché gli oggetti SACL non specificano i diritti di accesso, ma solo le informazioni di controllo.
bDefaulted
Specifica un flag che indica l'origine dell'elenco SACL. Se questo flag è true, sacl è stato recuperato da un meccanismo predefinito. Se false, sacl è stato specificato in modo esplicito da un utente. Il metodo archivia questo valore nel flag SE_SACL_DEFAULTED della SECURITY_DESCRIPTOR_CONTROL
struttura. Se questo parametro non viene specificato, il flag SE_SACL_DEFAULTED viene cancellato.
Valore restituito
Restituisce true se l'operazione ha esito positivo, false in caso di esito negativo.
CSecurityDesc::ToString
Converte un descrittore di sicurezza in un formato stringa.
bool ToString(
CString* pstr, SECURITY_INFORMATION si = OWNER_SECURITY_INFORMATION |
GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION |
SACL_SECURITY_INFORMATION) const throw(...);
Parametri
pstr
Puntatore a una stringa con terminazione Null che riceverà il descrittore di sicurezza in formato stringa.
si
Specifica una combinazione di flag di bit SECURITY_INFORMATION per indicare i componenti del descrittore di sicurezza da includere nella stringa di output.
Valore restituito
Restituisce true se l'operazione ha esito positivo, false in caso di esito negativo.
Osservazioni:
Una volta che il descrittore di sicurezza è in formato stringa, può essere archiviato o trasmesso più facilmente. Utilizzare il CSecurityDesc::FromString
metodo per convertire nuovamente la stringa in un descrittore di sicurezza.
Il parametro si può contenere i flag di SECURITY_INFORMATION seguenti:
Valore | Significato |
---|---|
OWNER_SECURITY_INFORMATION | Includere il proprietario. |
GROUP_SECURITY_INFORMATION | Includere il gruppo primario. |
DACL_SECURITY_INFORMATION | Includere l'elenco DACL. |
SACL_SECURITY_INFORMATION | Includere l'elenco SACL. |
Se l'oggetto DACL è NULL e il bit di controllo SE_DACL_PRESENT viene impostato nel descrittore di sicurezza di input, il metodo ha esito negativo.
Se daCL è NULL e il bit di controllo SE_DACL_PRESENT non è impostato nel descrittore di sicurezza di input, la stringa del descrittore di sicurezza risultante non ha un componente D: . Per altri dettagli, vedere Security Descriptor String Format (Formato stringa descrittore di sicurezza).
Questo metodo chiama ConvertStringSecurityDescriptorToSecurityDescriptor.
Vedi anche
Esempio di sicurezza
SECURITY_DESCRIPTOR
Cenni preliminari sulla classe
Funzioni globali di sicurezza