Condividi tramite


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::GetP edizione StandardCURITY_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 edizione StandardCURITY_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 edizione Standard_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 edizione Standard_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 edizione Standard_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::GetP edizione StandardCURITY_DESCRIPTOR

Restituisce un puntatore alla SECURITY_DESCRIPTOR struttura.

const SECURITY_DESCRIPTOR* GetPSECURITY_DESCRIPTOR() const throw();

Valore restituito

Restituisce un puntatore alla struttura edizione StandardCURITY_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 edizione Standard_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 edizione Standard_DACL_PREedizione Standard NT 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 edizione Standard_DACL_PREedizione Standard NT 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 edizione Standard_SACL_PREedizione Standard NT 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 edizione StandardCURITY_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 edizione StandardCURITY_DESCRIPTOR_CONTROL che indica i bit di controllo da impostare. Per un elenco dei flag che è possibile impostare, vedere SetSecurityDescriptorControl.

ControlBitsToSet
Maschera edizione StandardCURITY_DESCRIPTOR_CONTROL che indica i nuovi valori per i bit del 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 edizione Standard_DACL_PREedizione Standard NT nella SECURITY_DESCRIPTOR_CONTROL struttura e usa i valori nei parametri Dacl e bDefaulted. Se è false, il metodo cancella il flag edizione Standard_DACL_PREedizione Standard NT 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 edizione Standard_DACL_DEFAULTED della SECURITY_DESCRIPTOR_CONTROL struttura. Se questo parametro non viene specificato, il flag edizione Standard_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 edizione Standard_GROUP_DEFAULTED nella SECURITY_DESCRIPTOR_CONTROL struttura. Se questo parametro è zero, il flag edizione Standard_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 edizione Standard_OWNER_DEFAULTED nella SECURITY_DESCRIPTOR_CONTROL struttura. Se questo parametro è zero, il flag edizione Standard_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 edizione Standard_SACL_DEFAULTED della SECURITY_DESCRIPTOR_CONTROL struttura. Se questo parametro non viene specificato, il flag edizione Standard_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 edizione StandardCURITY_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 edizione StandardCURITY_INFORMATION seguenti:

Valore Significato
OWNER_edizione StandardCURITY_INFORMATION Includere il proprietario.
GROUP_edizione StandardCURITY_INFORMATION Includere il gruppo primario.
DACL_edizione StandardCURITY_INFORMATION Includere l'elenco DACL.
SACL_edizione StandardCURITY_INFORMATION Includere l'elenco SACL.

Se l'oggetto DACL è NULL e il bit di controllo edizione Standard_DACL_PREedizione Standard NT viene impostato nel descrittore di sicurezza di input, il metodo ha esito negativo.

Se daCL è NULL e il bit di controllo edizione Standard_DACL_PREedizione Standard NT 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
edizione StandardCURITY_DESCRIPTOR
Cenni preliminari sulla classe
Funzioni globali di sicurezza