Partilhar via


Classe CSecurityDesc

Observação

A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Esta classe é um envelope para a SECURITY_DESCRIPTOR estrutura.

Importante

Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.

Sintaxe

class CSecurityDesc

Membros

Construtores Públicos

Nome Description
CSecurityDesc::CSecurityDesc O construtor.
CSecurityDesc::~CSecurityDesc O destruidor.

Métodos Públicos

Nome Description
CSecurityDesc::FromString Converte um descritor de segurança em formato de strings num descritor de segurança válido e funcional.
CSecurityDesc::GetControl Recupera informação de controlo do descritor de segurança.
CSecurityDesc::GetDacl Recupera informações da lista de controlo de acesso discricionário (DACL) do descritor de segurança.
CSecurityDesc::GetGroup Recupera a informação principal do grupo a partir do descritor de segurança.
CSecurityDesc::GetOwner Recupera a informação do proprietário a partir do descritor de segurança.
CSecurityDesc::GetPSECURITY_DESCRIPTOR Devolve um ponteiro para a SECURITY_DESCRIPTOR estrutura.
CSecurityDesc::GetSacl Recupera informações da lista de controlo de acesso do sistema (SACL) a partir do descritor de segurança.
CSecurityDesc::IsDaclAutoInherited Determina se o DACL está configurado para suportar propagação automática.
CSecurityDesc::IsDaclDefaulted Determina se o descritor de segurança está configurado com um DACL predefinido.
CSecurityDesc::IsDaclPresent Determina se o descritor de segurança contém um DACL.
CSecurityDesc::IsDaclProtected Determina se o DACL está configurado para evitar modificações.
CSecurityDesc::IsGroupDefaulted Determina se o identificador de grupo de segurança (SID) do descritor de segurança foi definido por defeito.
CSecurityDesc::IsOwnerDefaulted Determina se o SID proprietário do descritor de segurança foi definido por defeito.
CSecurityDesc::IsSaclAutoInherited Determina se o SACL está configurado para suportar propagação automática.
CSecurityDesc::IsSaclDefaulted Determina se o descritor de segurança está configurado com um SACL predefinido.
CSecurityDesc::IsSaclPresent Determina se o descritor de segurança contém um SACL.
CSecurityDesc::IsSaclProtected Determina se o SACL está configurado para evitar modificações.
CSecurityDesc::ÉPró-Relativo Determina se o descritor de segurança está em formato auto-relativo.
CSecurityDesc::MakeAbsolute Chame este método para converter o descritor de segurança para formato absoluto.
CSecurityDesc::MakeSelfRelative Chame este método para converter o descritor de segurança para o formato auto-relativo.
CSecurityDesc::SetControl Define os bits de controle de um descritor de segurança.
CSecurityDesc::SetDacl Define a informação num DACL. Se um DACL já estiver presente no descritor de segurança, é substituído.
CSecurityDesc::SetGroup Define a informação primária do grupo de um descritor de segurança de formato absoluto, substituindo qualquer informação primária do grupo já presente.
CSecurityDesc::SetOwner Define a informação do proprietário com um descritor de segurança de formato absoluto, substituindo qualquer informação do proprietário já presente.
CSecurityDesc::SetSacl Define a informação num SACL. Se um SACL já estiver presente no descritor de segurança, é substituído.
CSecurityDesc::ToString Converte um descritor de segurança para um formato de string.

Operadores Públicos

Nome Description
CSecurityDesc::operator const SECURITY_DESCRIPTOR * Devolve um ponteiro para a SECURITY_DESCRIPTOR estrutura.
CSecurityDesc::operator = Operador de atribuição.

Observações

A SECURITY_DESCRIPTOR estrutura contém a informação de segurança associada a um objeto. As aplicações utilizam esta estrutura para definir e consultar o estado de segurança de um objeto. Ver também AtlGetSecurityDescriptor.

As aplicações não devem modificar diretamente a SECURITY_DESCRIPTOR estrutura e, em vez disso, devem usar os métodos de classe fornecidos.

Para uma introdução ao modelo de controlo de acesso no Windows, veja Controlo de Acesso no SDK do Windows.

Requerimentos

Cabeçalho: atlsecurity.h

CSecurityDesc::CSecurityDesc

O construtor.

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

Parâmetros

RHS
O CSecurityDesc objeto ou SECURITY_DESCRIPTOR estrutura a atribuir ao novo CSecurityDesc objeto.

Observações

O CSecurityDesc objeto pode ser criado opcionalmente usando uma SECURITY_DESCRIPTOR estrutura ou um objeto previamente definido CSecurityDesc .

CSecurityDesc::~CSecurityDesc

O destruidor.

virtual ~CSecurityDesc() throw();

Observações

O destruidor liberta todos os recursos alocados.

CSecurityDesc::FromString

Converte um descritor de segurança em formato de strings num descritor de segurança válido e funcional.

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

Parâmetros

pstr
Apontador para uma cadeia terminada por nulo que contém o descritor de segurança de formato de cadeia a converter.

Valor de retorno

Retornos verdadeiros no sucesso. Faz uma exceção em caso de falha.

Observações

A string pode ser criada usando CSecurityDesc::ToString. Converter o descritor de segurança numa cadeia de caracteres facilita o armazenamento e a transmissão.

Este método chama ConvertStringSecurityDescriptorToSecurityDescriptor.

CSecurityDesc::GetControl

Recupera informação de controlo do descritor de segurança.

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

Parâmetros

PSDC
Apontador para uma SECURITY_DESCRIPTOR_CONTROL estrutura que recebe a informação de controlo do descritor de segurança.

Valor de retorno

Retorna true se o método tiver sucesso, false se falhar.

Observações

Este método chama GetSecurityDescriptorControl.

CSecurityDesc::GetDacl

Recupera informações da lista de controlo de acesso discricionário (DACL) do descritor de segurança.

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

Parâmetros

pDacl
Apontador para uma CDacl estrutura onde armazenar uma cópia do DACL do descritor de segurança. Se existir uma ACL discricionária, o método define pDacl para o endereço da ACL discricionária do descritor de segurança. Se não existir um ACL discricionário, não é armazenado valor.

pbPresent
Apontar para um valor que indica a presença de uma ACL discricionária no descritor de segurança especificado. Se o descritor de segurança contiver uma ACL discricionária, este parâmetro é definido como verdadeiro. Se o descritor de segurança não contiver uma ACL discricionária, este parâmetro é definido como falso.

pbDefaulted
Apontar para uma flag definida para o valor da SE_DACL_DEFAULTED flag na SECURITY_DESCRIPTOR_CONTROL estrutura se existir uma ACL discricionária para o descritor de segurança. Se esta bandeira for verdadeira, a ACL discricionária foi recuperada por um mecanismo padrão; se falso, a ACL discricionária era explicitamente especificada por um utilizador.

Valor de retorno

Retorna true se o método tiver sucesso, false se falhar.

CSecurityDesc::GetGroup

Recupera a informação principal do grupo a partir do descritor de segurança.

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

Parâmetros

pSid
Apontador para um CSid (identificador de segurança) que recebe uma cópia do grupo armazenado no CDacl.

pbDefaulted
Apontador para uma flag definida para o valor da flag de SE_GROUP_DEFAULTED na SECURITY_DESCRIPTOR_CONTROL estrutura quando o método regressa.

Valor de retorno

Retorna true se o método tiver sucesso, false se falhar.

CSecurityDesc::GetOwner

Recupera a informação do proprietário a partir do descritor de segurança.

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

Parâmetros

pSid
Apontador para um CSid (identificador de segurança) que recebe uma cópia do grupo armazenado no CDacl.

pbDefaulted
Apontar para uma bandeira definida com o valor da SE_OWNER_DEFAULTED flag na SECURITY_DESCRIPTOR_CONTROL estrutura quando o método retorna.

Valor de retorno

Retorna true se o método tiver sucesso, false se falhar.

CSecurityDesc::GetPSECURITY_DESCRIPTOR

Devolve um ponteiro para a SECURITY_DESCRIPTOR estrutura.

const SECURITY_DESCRIPTOR* GetPSECURITY_DESCRIPTOR() const throw();

Valor de retorno

Devolve um ponteiro para a estrutura SECURITY_DESCRIPTOR .

CSecurityDesc::GetSacl

Recupera informações da lista de controlo de acesso do sistema (SACL) a partir do descritor de segurança.

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

Parâmetros

pSacl
Apontador para uma CSacl estrutura onde armazenar uma cópia do SACL do descritor de segurança. Se existir uma ACL do sistema, o método define pSacl como o endereço da ACL do sistema do descritor de segurança. Se uma ACL do sistema não existir, não é armazenado valor.

pbPresent
Apontando para um flag que o método define para indicar a presença de uma ACL do sistema no descritor de segurança especificado. Se o descritor de segurança contiver uma ACL do sistema, este parâmetro é definido como verdadeiro. Se o descritor de segurança não contiver uma ACL do sistema, este parâmetro é definido como falso.

pbDefaulted
Apontador para uma flag definida para o valor da SE_SACL_DEFAULTED flag na SECURITY_DESCRIPTOR_CONTROL estrutura se existir uma ACL do sistema para o descritor de segurança.

Valor de retorno

Retorna true se o método tiver sucesso, false se falhar.

CSecurityDesc::IsDaclAutoInherited

Determina se a lista de controlo de acesso discricionária (DACL) está configurada para suportar propagação automática.

bool IsDaclAutoInherited() const throw();

Valor de retorno

Retorna verdadeiro se o descritor de segurança contiver um DACL configurado para suportar a propagação automática de entradas de controlo de acesso (ACEs) hereditárias para objetos filhos existentes. Caso contrário, devolve false.

Observações

O sistema define este bit quando executa o algoritmo de herança automática para o objeto e os seus objetos filhos existentes.

CSecurityDesc::IsDaclDefaulted

Determina se o descritor de segurança está configurado com uma lista de controlo de acesso discricionária (DACL) por defeito.

bool IsDaclDefaulted() const throw();

Valor de retorno

Retorna true se o descritor de segurança contiver um DACL padrão, false caso contrário.

Observações

Este flag pode afetar a forma como o sistema trata o DACL, relativamente à herança de entrada de controlo de acesso (ACE). Por exemplo, se o criador de um objeto não especificar um DACL, o objeto recebe o DACL predefinido do token de acesso do criador. O sistema ignora esta bandeira se a SE_DACL_PRESENT não estiver ativada.

Esta flag é usada para determinar como o DACL final do objeto deve ser calculado e não é armazenado fisicamente no controlo do descritor de segurança do objeto securável.

Para definir este flag, use o método CSecurityDesc::SetDacl .

CSecurityDesc::IsDaclPresent

Determina se o descritor de segurança contém uma lista de controlo de acesso discricionária (DACL).

bool IsDaclPresent() const throw();

Valor de retorno

Retorna verdadeiro se o descritor de segurança contiver um DACL, falso caso contrário.

Observações

Se este flag não estiver definido, ou se estiver definido e o DACL for NULL, o descritor de segurança permite acesso total a todos.

Esta flag é usada para armazenar a informação de segurança especificada por um chamador até que o descritor de segurança seja associado a um objeto seguro. Uma vez que o descritor de segurança está associado a um objeto seguro, a flag de SE_DACL_PRESENT é sempre definida no controlo do descritor de segurança.

Para definir este flag, use o método CSecurityDesc::SetDacl .

CSecurityDesc::IsDaclProtected

Determina se a lista de controlo de acesso discricionária (DACL) está configurada para evitar modificações.

bool IsDaclProtected() const throw();

Valor de retorno

Retorna verdadeiro se o DACL estiver configurado para evitar que o descritor de segurança seja modificado por entradas de controlo de acesso (ACEs) herdáveis. Caso contrário, devolve false.

Observações

Para definir este flag, use o método CSecurityDesc::SetDacl .

Este método suporta a propagação automática de ACEs herdáveis.

CSecurityDesc::IsGroupDefaulted

Determina se o identificador de grupo de segurança (SID) do descritor de segurança foi definido por defeito.

bool IsGroupDefaulted() const throw();

Valor de retorno

Retorna verdadeiro se um mecanismo padrão, em vez do fornecedor original do descritor de segurança, fornecer o SID do grupo do descritor de segurança. Caso contrário, devolve false.

Observações

Para definir este flag, use o método CSecurityDesc::SetGroup .

CSecurityDesc::IsOwnerDefaulted

Determina se o identificador de proprietário (SID) do descritor de segurança foi definido por defeito.

bool IsOwnerDefaulted() const throw();

Valor de retorno

Retornos válidos se um mecanismo padrão, em vez do fornecedor original do descritor de segurança, tiver fornecido o SID proprietário do descritor de segurança. Caso contrário, devolve false.

Observações

Para definir este flag, use o método CSecurityDesc::SetOwner .

CSecurityDesc::IsSaclAutoInherited

Determina se a lista de controlo de acesso do sistema (SACL) está configurada para suportar propagação automática.

bool IsSaclAutoInherited() const throw();

Valor de retorno

Retorna verdadeiro se o descritor de segurança contiver um SACL configurado para suportar a propagação automática de entradas de controlo de acesso herdantes (ACEs) para objetos filhos existentes. Caso contrário, devolve false.

Observações

O sistema define este bit quando executa o algoritmo de herança automática para o objeto e os seus objetos filhos existentes.

CSecurityDesc::IsSaclDefaulted

Determina se o descritor de segurança está configurado com uma lista de controlo de acesso ao sistema (SACL) por defeito.

bool IsSaclDefaulted() const throw();

Valor de retorno

Retorna true se o descritor de segurança contiver um SACL predefinido, false caso contrário.

Observações

Este flag pode afetar a forma como o sistema trata a SACL, relativamente à herança de entrada por controlo de acesso (ACE). O sistema ignora esta bandeira se a SE_SACL_PRESENT não estiver ativada.

Para definir este flag, use o método CSecurityDesc::SetSacl .

CSecurityDesc::IsSaclPresent

Determina se o descritor de segurança contém uma lista de controlo de acesso ao sistema (SACL).

bool IsSaclPresent() const throw();

Valor de retorno

Retorna true se o descritor de segurança contiver um SACL, falso caso contrário.

Observações

Para definir este flag, use o método CSecurityDesc::SetSacl .

CSecurityDesc::IsSaclProtected

Determina se a lista de controlo de acesso do sistema (SACL) está configurada para evitar modificações.

bool IsSaclProtected() const throw();

Valor de retorno

Retorna verdadeiro se o SACL estiver configurado para impedir que o descritor de segurança seja modificado por entradas de controlo de acesso herdadas (ACEs). Caso contrário, devolve false.

Observações

Para definir este flag, use o método CSecurityDesc::SetSacl .

Este método suporta a propagação automática de ACEs herdáveis.

CSecurityDesc::ÉPró-Relativo

Determina se o descritor de segurança está em formato auto-relativo.

bool IsSelfRelative() const throw();

Valor de retorno

Retorna verdadeiro se o descritor de segurança estiver em formato auto-relativo, com toda a informação de segurança num bloco contíguo de memória. Retorna false se o descritor de segurança estiver em formato absoluto. Para mais informações, consulte Descritores de Segurança Absolutos e Self-Relative.

CSecurityDesc::MakeAbsolute

Chame este método para converter o descritor de segurança para formato absoluto.

bool MakeAbsolute() throw(...);

Valor de retorno

Retorna true se o método tiver sucesso, false caso contrário.

Observações

Um descritor de segurança em formato absoluto contém apontadores para a informação que contém, em vez da informação em si. Um descritor de segurança em formato auto-relativo contém a informação num bloco contíguo de memória. Num descritor de segurança auto-relativo, uma SECURITY_DESCRIPTOR estrutura inicia sempre a informação, mas os outros componentes do descritor de segurança podem seguir a estrutura em qualquer ordem. Em vez de usar endereços de memória, os componentes do descritor de segurança auto-relativo são identificados por deslocamentos a partir do início do descritor de segurança. Este formato é útil quando um descritor de segurança deve ser armazenado num disco ou transmitido por meio de um protocolo de comunicação. Para mais informações, consulte Descritores de Segurança Absolutos e Self-Relative.

CSecurityDesc::MakeSelfRelative

Chame este método para converter o descritor de segurança para o formato auto-relativo.

bool MakeSelfRelative() throw(...);

Valor de retorno

Retorna true se o método tiver sucesso, false caso contrário.

Observações

Um descritor de segurança em formato absoluto contém ponteiros para a informação que contém, em vez de conter a informação em si. Um descritor de segurança em formato auto-relativo contém a informação num bloco contíguo de memória. Num descritor de segurança auto-relativo, uma SECURITY_DESCRIPTOR estrutura inicia sempre a informação, mas os outros componentes do descritor de segurança podem seguir a estrutura em qualquer ordem. Em vez de usar endereços de memória, os componentes do descritor de segurança são identificados por deslocamentos desde o início do descritor de segurança. Este formato é útil quando um descritor de segurança deve ser armazenado num disco ou transmitido por meio de um protocolo de comunicação. Para mais informações, consulte Descritores de Segurança Absolutos e Self-Relative.

CSecurityDesc::operator =

Operador de atribuição.

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

Parâmetros

RHS
A SECURITY_DESCRIPTOR estrutura ou CSecurityDesc objeto a atribuir ao CSecurityDesc objeto.

Valor de retorno

Devolve o objeto atualizado CSecurityDesc .

CSecurityDesc::operator const SECURITY_DESCRIPTOR *

Atribui um valor a um apontador para a SECURITY_DESCRIPTOR estrutura.

operator const SECURITY_DESCRIPTOR *() const throw();

CSecurityDesc::SetControl

Define os bits de controle de um descritor de segurança.

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

Parâmetros

ControlsBitsOfInterest
Uma máscara SECURITY_DESCRIPTOR_CONTROL que indica os bits de controlo a definir. Para uma lista das flags que podem ser definidas, veja SetSecurityDescriptorControl.

ControlBitsToSet
Uma máscara SECURITY_DESCRIPTOR_CONTROL que indica os novos valores para os bits de controlo especificados pela máscara ControlBitsOfInterest . Este parâmetro pode ser uma combinação das flags listadas para o parâmetro ControlBitsOfInterest .

Valor de retorno

Retorna verdadeiro no sucesso, falso no fracasso.

Observações

Este método chama SetSecurityDescriptorControl.

CSecurityDesc::SetDacl

Define a informação numa lista de controlo de acesso discricionária (DACL). Se um DACL já estiver presente no descritor de segurança, é substituído.

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

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

Parâmetros

Dacl
Referência a um CDacl objeto que especifica o DACL para o descritor de segurança. Este parâmetro não pode ser NULL. Para definir um DACL NULL no descritor de segurança, deve ser usada a primeira forma do método com bPresent definido como falso.

bPresente
Especifica uma bandeira que indica a presença de um DACL no descritor de segurança. Se este parâmetro for verdadeiro, o método define a SE_DACL_PRESENT flag na SECURITY_DESCRIPTOR_CONTROL estrutura e utiliza os valores nos parâmetros Dacl e bDefaulted . Se for falso, o método elimina a bandeira de SE_DACL_PRESENT e bDefaulted é ignorado.

bDefaulted
Especifica uma bandeira que indica a origem do DACL. Se este flag for verdadeiro, o DACL foi recuperado por algum mecanismo padrão. Se for falso, o DACL foi explicitamente especificado por um utilizador. O método armazena este valor na SE_DACL_DEFAULTED flag da SECURITY_DESCRIPTOR_CONTROL estrutura. Se este parâmetro não for especificado, a SE_DACL_DEFAULTED flag é eliminada.

Valor de retorno

Retorna verdadeiro no sucesso, falso no fracasso.

Observações

Existe uma diferença importante entre um DACL vazio e um DACL inexistente. Quando um DACL está vazio, não contém entradas de controlo de acesso e não foram explicitamente concedidos direitos de acesso. Como resultado, o acesso ao objeto é implicitamente negado. Por outro lado, quando um objeto não tem DACL, não lhe é atribuída proteção e qualquer pedido de acesso é concedido.

CSecurityDesc::SetGroup

Define a informação primária do grupo de um descritor de segurança de formato absoluto, substituindo qualquer informação primária do grupo já presente.

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

Parâmetros

Sid
Referência a um objeto CSid para o novo grupo primário do descritor de segurança. Este parâmetro não pode ser NULL. Um descritor de segurança pode ser marcado como não tendo DACL ou SACL, mas deve ter um grupo e um proprietário, mesmo que estes sejam o SID NULL (que é um SID incorporado com um significado especial).

bDefaulted
Indica se a informação primária do grupo foi derivada de um mecanismo padrão. Se este valor for verdadeiro, é informação por defeito, e o método armazena esse valor como a SE_GROUP_DEFAULTED flag na SECURITY_DESCRIPTOR_CONTROL estrutura. Se este parâmetro for zero, a bandeira de SE_GROUP_DEFAULTED é eliminada.

Valor de retorno

Retorna verdadeiro no sucesso, falso no fracasso.

CSecurityDesc::SetOwner

Define a informação do proprietário com um descritor de segurança em formato absoluto. Substitui qualquer informação do proprietário já presente.

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

Parâmetros

Sid
O CSid obtém para o novo proprietário principal do descritor de segurança. Este parâmetro não pode ser NULL.

bDefaulted
Indica se a informação do proprietário é derivada de um mecanismo padrão. Se este valor for verdadeiro, é informação por defeito. O método armazena este valor como a SE_OWNER_DEFAULTED flag na SECURITY_DESCRIPTOR_CONTROL estrutura. Se este parâmetro for zero, a bandeira SE_OWNER_DEFAULTED é eliminada.

Valor de retorno

Retorna verdadeiro no sucesso, falso no fracasso.

CSecurityDesc::SetSacl

Define a informação numa lista de controlo de acesso do sistema (SACL). Se um SACL já estiver presente no descritor de segurança, é substituído.

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

Parâmetros

Sacl
Apontador para um CSacl objeto que especifica o SACL para o descritor de segurança. Este parâmetro não pode ser NULL e deve ser um objeto CSacl. Ao contrário dos DACLs, não há diferença entre NULL e um SACL vazio, pois os objetos SACL não especificam direitos de acesso, apenas auditam informação.

bDefaulted
Especifica uma bandeira que indica a origem do SACL. Se este flag for verdadeiro, o SACL foi recuperado por algum mecanismo padrão. Se for falso, o SACL foi explicitamente especificado por um utilizador. O método armazena este valor na SE_SACL_DEFAULTED bandeira da SECURITY_DESCRIPTOR_CONTROL estrutura. Se este parâmetro não for especificado, a bandeira de SE_SACL_DEFAULTED é eliminada.

Valor de retorno

Retorna verdadeiro no sucesso, falso no fracasso.

CSecurityDesc::ToString

Converte um descritor de segurança para um formato de string.

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

Parâmetros

pstr
Apontador para uma cadeia terminada por nulo que receberá o descritor de segurança em formato de cadeia.

si
Especifica uma combinação de flags de SECURITY_INFORMATION bits para indicar os componentes do descritor de segurança a incluir na cadeia de saída.

Valor de retorno

Retorna verdadeiro no sucesso, falso no fracasso.

Observações

Uma vez que o descritor de segurança está em formato de string, pode ser armazenado ou transmitido mais facilmente. Use o CSecurityDesc::FromString método para converter a cadeia de volta num descritor de segurança.

O parâmetro si pode conter as seguintes SECURITY_INFORMATION flags:

Valor Meaning
OWNER_SECURITY_INFORMATION Inclui o proprietário.
GROUP_SECURITY_INFORMATION Inclua o grupo principal.
DACL_SECURITY_INFORMATION Inclui o DACL.
SACL_SECURITY_INFORMATION Inclui o SACL.

Se o DACL for NULL e o bit de controlo SE_DACL_PRESENT estiver definido no descritor de segurança de entrada, o método falha.

Se o DACL for NULL e o bit de controlo SE_DACL_PRESENT não estiver definido no descritor de segurança de entrada, a cadeia de descritores de segurança resultante não tem um componente D:. Consulte Security Descriptor String Format para mais detalhes.

Este método chama ConvertStringSecurityDescriptorToSecurityDescriptor.

Consulte também

Exemplo de Segurança
SECURITY_DESCRIPTOR
Visão geral da classe
Funções Globais de Segurança