Classe CSecurityDesc
Essa classe é um wrapper para a estrutura SECURITY_DESCRIPTOR
.
Importante
Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.
Sintaxe
class CSecurityDesc
Membros
Construtores públicos
Nome | Descrição |
---|---|
CSecurityDesc::CSecurityDesc | O construtor . |
CSecurityDesc::~CSecurityDesc | O destruidor. |
Métodos públicos
Nome | Descrição |
---|---|
CSecurityDesc::FromString | Converte um descritor de segurança de formato de cadeia de caracteres em um descritor de segurança funcional válido. |
CSecurityDesc::GetControl | Recupera informações de controle do descritor de segurança. |
CSecurityDesc::GetDacl | Recupera informações da DACL (lista de controle de acesso discricionário) do descritor de segurança. |
CSecurityDesc::GetGroup | Recupera as informações do grupo primário do descritor de segurança. |
CSecurityDesc::GetOwner | Recupera as informações do proprietário do descritor de segurança. |
CSecurityDesc::GetPSECURITY_DESCRIPTOR | Retorna um ponteiro para a estrutura SECURITY_DESCRIPTOR . |
CSecurityDesc::GetSacl | Recupera informações da SACL (lista de controle de acesso do sistema) do descritor de segurança. |
CSecurityDesc::IsDaclAutoInherited | Determina se a DACL está configurada para dar suporte à propagação automática. |
CSecurityDesc::IsDaclDefaulted | Determina se o descritor de segurança está configurado com uma DACL padrão. |
CSecurityDesc::IsDaclPresent | Determina se o descritor de segurança contém uma DACL. |
CSecurityDesc::IsDaclProtected | Determina se a DACL está configurada para evitar modificações. |
CSecurityDesc::IsGroupDefaulted | Determina se o SID (identificador de segurança de grupo) do grupo do descritor de segurança foi definido por padrão. |
CSecurityDesc::IsOwnerDefaulted | Determina se o SID do proprietário do descritor de segurança foi definido por padrão. |
CSecurityDesc::IsSaclAutoInherited | Determina se a SACL está configurada para dar suporte à propagação automática. |
CSecurityDesc::IsSaclDefaulted | Determina se o descritor de segurança está configurado com uma SACL padrão. |
CSecurityDesc::IsSaclPresent | Determina se o descritor de segurança contém uma SACL. |
CSecurityDesc::IsSaclProtected | Determina se a SACL está configurada para evitar modificações. |
CSecurityDesc::IsSelfRelative | Determina se o descritor de segurança está em formato autorrelativo. |
CSecurityDesc::MakeAbsolute | Chame esse método para converter o descritor de segurança ao formato absoluto. |
CSecurityDesc::MakeSelfRelative | Chame esse método para converter o descritor de segurança ao formato autorrelativo. |
CSecurityDesc::SetControl | Define os bits de controle de um descritor de segurança. |
CSecurityDesc::SetDacl | Define informações em uma DACL. Se já houver uma DACL presente no descritor de segurança, ela será substituída. |
CSecurityDesc::SetGroup | Define as informações do grupo primário de um descritor de segurança de formato absoluto, substituindo todas as informações do grupo primário já presentes. |
CSecurityDesc::SetOwner | Define as informações do proprietário de um descritor de segurança de formato absoluto, substituindo todas as informações do proprietário já presentes. |
CSecurityDesc::SetSacl | Define informações em uma SACL. Se já houver uma SACL presente no descritor de segurança, ela será substituída. |
CSecurityDesc::ToString | Converte um descritor de segurança em um formato de cadeia de caracteres. |
Operadores públicos
Nome | Descrição |
---|---|
CSecurityDesc::operator const SECURITY_DESCRIPTOR * | Retorna um ponteiro para a estrutura SECURITY_DESCRIPTOR . |
CSecurityDesc::operator = | Operador de atribuição. |
Comentários
A estrutura SECURITY_DESCRIPTOR
contém as informações de segurança associadas a um objeto. Os aplicativos usam essa estrutura para definir e consultar o status de segurança de um objeto. Confira também AtlGetSecurityDescriptor.
Os aplicativos não devem modificar a estrutura SECURITY_DESCRIPTOR
diretamente; em vez disso, devem usar os métodos de classe fornecidos.
Para ver uma introdução ao modelo de controle de acesso no Windows, confira Controle de Acesso no SDK do Windows.
Requisitos
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 objeto CSecurityDesc
ou a estrutura SECURITY_DESCRIPTOR
a serem atribuídos ao novo objeto CSecurityDesc
.
Comentários
O objeto CSecurityDesc
pode ser criado usando uma estrutura SECURITY_DESCRIPTOR
ou um objeto CSecurityDesc
definido anteriormente.
CSecurityDesc::~CSecurityDesc
O destruidor.
virtual ~CSecurityDesc() throw();
Comentários
O destruidor libera todos os recursos alocados.
CSecurityDesc::FromString
Converte um descritor de segurança de formato de cadeia de caracteres em um descritor de segurança funcional válido.
bool FromString(LPCTSTR pstr) throw(...);
Parâmetros
pstr
Ponteiro para uma cadeia de caracteres terminada em nulo que contém o descritor de segurança de formato de cadeia de caracteres a ser convertido.
Valor de retorno
Retorna true em caso de êxito. Gera uma exceção na falha.
Comentários
A cadeia de caracteres pode ser criada usando-se CSecurityDesc::ToString. A conversão do descritor de segurança em uma cadeia de caracteres facilita o armazenamento e a transmissão.
Esse método chama ConvertStringSecurityDescriptorToSecurityDescriptor.
CSecurityDesc::GetControl
Recupera informações de controle do descritor de segurança.
bool GetControl(SECURITY_DESCRIPTOR_CONTROL* psdc) const throw();
Parâmetros
psdc
Ponteiro para uma estrutura SECURITY_DESCRIPTOR_CONTROL
que recebe as informações de controle do descritor de segurança.
Valor de retorno
Retornará true se o método tiver êxito e false se falhar.
Comentários
Esse método chama GetSecurityDescriptorControl.
CSecurityDesc::GetDacl
Recupera informações da DACL (lista de controle de acesso discricionário) do descritor de segurança.
bool GetDacl(
CDacl* pDacl,
bool* pbPresent = NULL,
bool* pbDefaulted = NULL) const throw(...);
Parâmetros
pDacl
Ponteiro para uma estrutura CDacl
na qual deve ser armazenada uma cópia da DACL do descritor de segurança. Se existir uma ACL (lista de controle de acesso) discricionária, o método definirá pDacl como o endereço da ACL discricionária do descritor de segurança. Se não existir uma ACL discricionária, nenhum valor será armazenado.
pbPresent
Ponteiro 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, esse parâmetro será definido como true. Se o descritor de segurança não contiver uma ACL discricionária, esse parâmetro será definido como false.
pbDefaulted
Ponteiro para um sinalizador definido como o valor do sinalizador SE_DACL_DEFAULTED na estrutura SECURITY_DESCRIPTOR_CONTROL
se houver uma ACL discricionária para o descritor de segurança. Se esse sinalizador for verdadeiro, significa que a ACL discricionária foi recuperada por um mecanismo padrão; se for false, a ACL discricionária foi explicitamente especificada por um usuário.
Valor de retorno
Retornará true se o método tiver êxito e false se falhar.
CSecurityDesc::GetGroup
Recupera as informações do grupo primário do descritor de segurança.
bool GetGroup(
CSid* pSid,
bool* pbDefaulted = NULL) const throw(...);
Parâmetros
pSid
Ponteiro para um CSid (identificador de segurança) que recebe uma cópia do grupo armazenado no CDacl.
pbDefaulted
Ponteiro para um sinalizador definido como o valor do sinalizador SE_GROUP_DEFAULTED na estrutura SECURITY_DESCRIPTOR_CONTROL
quando o método é retornado.
Valor de retorno
Retornará true se o método tiver êxito e false se falhar.
CSecurityDesc::GetOwner
Recupera as informações do proprietário do descritor de segurança.
bool GetOwner(
CSid* pSid,
bool* pbDefaulted = NULL) const throw(...);
Parâmetros
pSid
Ponteiro para um CSid (identificador de segurança) que recebe uma cópia do grupo armazenado no CDacl.
pbDefaulted
Ponteiro para um sinalizador definido como o valor do sinalizador SE_OWNER_DEFAULTED na estrutura SECURITY_DESCRIPTOR_CONTROL
quando o método é retornado.
Valor de retorno
Retornará true se o método tiver êxito e false se falhar.
CSecurityDesc::GetPSECURITY_DESCRIPTOR
Retorna um ponteiro para a estrutura SECURITY_DESCRIPTOR
.
const SECURITY_DESCRIPTOR* GetPSECURITY_DESCRIPTOR() const throw();
Valor de retorno
Retorna um ponteiro para a estrutura SECURITY_DESCRIPTOR.
CSecurityDesc::GetSacl
Recupera informações da SACL (lista de controle de acesso do sistema) do descritor de segurança.
bool GetSacl(
CSacl* pSacl,
bool* pbPresent = NULL,
bool* pbDefaulted = NULL) const throw(...);
Parâmetros
pSacl
Ponteiro para uma estrutura CSacl
na qual deve ser armazenada uma cópia da SACL do descritor de segurança. Se existir uma ACL do sistema, o método definirá pSacl como o endereço da ACL do sistema do descritor de segurança. Se não existir uma ACL do sistema, nenhum valor será armazenado.
pbPresent
Ponteiro para um sinalizador 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 de sistema, esse parâmetro será definido como true. Se o descritor de segurança não contiver uma ACL de sistema, esse parâmetro será definido como false.
pbDefaulted
Ponteiro para um sinalizador definido como o valor do sinalizador SE_SACL_DEFAULTED na estrutura SECURITY_DESCRIPTOR_CONTROL
se houver uma ACL de sistema para o descritor de segurança.
Valor de retorno
Retornará true se o método tiver êxito e false se falhar.
CSecurityDesc::IsDaclAutoInherited
Determina se a DACL (lista de controle de acesso discricionário) está configurada para dar suporte à propagação automática.
bool IsDaclAutoInherited() const throw();
Valor de retorno
Retornará true se o descritor de segurança contiver uma DACL configurada para dar suporte à propagação automática de ACEs (entradas de controle de acesso) herdáveis para objetos filho existentes. Caso contrário, retorna falso.
Comentários
O sistema define esse bit ao executar o algoritmo de herança automático para o objeto e seus objetos filho existentes.
CSecurityDesc::IsDaclDefaulted
Determina se o descritor de segurança está configurado com uma DACL (lista padrão de controle de acesso discricionário).
bool IsDaclDefaulted() const throw();
Valor de retorno
Retornará true se o descritor de segurança contiver uma DACL padrão, caso contrário, retornará false.
Comentários
Esse sinalizador pode afetar a forma como o sistema trata a DACL em relação à ACE (entrada de controle de acesso) de herança. Por exemplo, se o criador de um objeto não especificar uma DACL, o objeto receberá a DACL padrão do token de acesso do criador. O sistema ignorará esse sinalizador se o sinalizador SE_DACL_PRESENT não estiver definido.
Esse sinalizador é usado para determinar como a DACL final no objeto deve ser computada e não fica armazenada fisicamente no controle do descritor de segurança do objeto protegível.
Para definir esse sinalizador, use o método CSecurityDesc::SetDacl.
CSecurityDesc::IsDaclPresent
Determina se o descritor de segurança contém uma DACL (lista de controle de acesso discricionário).
bool IsDaclPresent() const throw();
Valor de retorno
Retornará true se o descritor de segurança contiver uma DACL, caso contrário, retornará false.
Comentários
Se esse sinalizador não estiver definido ou se estiver definido e a DACL for NULL, o descritor de segurança permitirá o acesso total a todos.
Esse sinalizador é usado para manter as informações de segurança especificadas por um chamador até que o descritor de segurança esteja associado a um objeto protegível. Assim que o descritor de segurança estiver associado a um objeto protegível, o sinalizador SE_DACL_PRESENT ficará sempre definido no controle do descritor de segurança.
Para definir esse sinalizador, use o método CSecurityDesc::SetDacl.
CSecurityDesc::IsDaclProtected
Determina se a DACL (lista de controle de acesso discricionário) está configurada para evitar modificações.
bool IsDaclProtected() const throw();
Valor de retorno
Retornará true se a DACL estiver configurada para impedir que o descritor de segurança seja modificado por ACEs (entradas de controle de acesso) herdáveis. Caso contrário, retorna falso.
Comentários
Para definir esse sinalizador, use o método CSecurityDesc::SetDacl.
Esse método dá suporte à propagação automática de ACEs herdáveis.
CSecurityDesc::IsGroupDefaulted
Determina se o SID (identificador de segurança de grupo) do grupo do descritor de segurança foi definido por padrão.
bool IsGroupDefaulted() const throw();
Valor de retorno
Retornará true se, em vez do provedor original do descritor de segurança, um mecanismo padrão tiver fornecido o SID do grupo do descritor de segurança. Caso contrário, retorna falso.
Comentários
Para definir esse sinalizador, use o método CSecurityDesc::SetGroup.
CSecurityDesc::IsOwnerDefaulted
Determina se o SID (identificador de segurança de grupo) do proprietário do descritor de segurança foi definido por padrão.
bool IsOwnerDefaulted() const throw();
Valor de retorno
Retornará true se, em vez do provedor original do descritor de segurança, um mecanismo padrão tiver fornecido o SID do proprietário do descritor de segurança. Caso contrário, retorna falso.
Comentários
Para definir esse sinalizador, use o método CSecurityDesc::SetOwner.
CSecurityDesc::IsSaclAutoInherited
Determina se a SACL (lista de controle de acesso do sistema) está configurada para dar suporte à propagação automática.
bool IsSaclAutoInherited() const throw();
Valor de retorno
Retornará true se o descritor de segurança contiver uma SACL configurada para dar suporte à propagação automática de ACEs (entradas de controle de acesso) herdáveis para objetos filho existentes. Caso contrário, retorna falso.
Comentários
O sistema define esse bit ao executar o algoritmo de herança automático para o objeto e seus objetos filho existentes.
CSecurityDesc::IsSaclDefaulted
Determina se o descritor de segurança está configurado com uma SACL (lista de controle de acesso do sistema) padrão.
bool IsSaclDefaulted() const throw();
Valor de retorno
Retornará true se o descritor de segurança contiver uma SACL padrão, caso contrário, retornará false.
Comentários
Esse sinalizador pode afetar a forma como o sistema trata a SACL em relação à ACE (entrada de controle de acesso) de herança. O sistema ignorará esse sinalizador se o sinalizador SE_SACL_PRESENT não estiver definido.
Para definir esse sinalizador, use o método CSecurityDesc::SetSacl.
CSecurityDesc::IsSaclPresent
Determina se o descritor de segurança contém uma SACL (lista de controle de acesso do sistema).
bool IsSaclPresent() const throw();
Valor de retorno
Retornará true se o descritor de segurança contiver uma SACL, caso contrário, retornará false.
Comentários
Para definir esse sinalizador, use o método CSecurityDesc::SetSacl.
CSecurityDesc::IsSaclProtected
Determina se a SACL (lista de controle de acesso do sistema) está configurada para evitar modificações.
bool IsSaclProtected() const throw();
Valor de retorno
Retornará true se a SACL estiver configurada para impedir que o descritor de segurança seja modificado por ACEs (entradas de controle de acesso) herdáveis. Caso contrário, retorna falso.
Comentários
Para definir esse sinalizador, use o método CSecurityDesc::SetSacl.
Esse método dá suporte à propagação automática de ACEs herdáveis.
CSecurityDesc::IsSelfRelative
Determina se o descritor de segurança está em formato autorrelativo.
bool IsSelfRelative() const throw();
Valor de retorno
Retornará true se o descritor de segurança estiver em formato autorrelativo com todas as informações de segurança em um bloco de memória contíguo. Retornará false se o descritor de segurança estiver em formato absoluto. Para obter mais informações, confira Descritores de segurança absolutos e autorrelativos.
CSecurityDesc::MakeAbsolute
Chame esse método para converter o descritor de segurança ao formato absoluto.
bool MakeAbsolute() throw(...);
Valor de retorno
Retornará true se o método tiver êxito, caso contrário, retornará false.
Comentários
Um descritor de segurança em formato absoluto contém ponteiros para as informações presentes nele em vez das informações em si. Um descritor de segurança em formato autorrelativo contém as informações em um bloco de memória contíguo. Em um descritor de segurança autorrelativo, uma estrutura SECURITY_DESCRIPTOR
sempre inicia as informações, mas 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 autorrelativo são identificados por deslocamentos desde o início do descritor de segurança. Esse formato é útil quando um for preciso armazenar um descritor de segurança em um disco ou transmiti-lo por meio de um protocolo de comunicação. Para obter mais informações, confira Descritores de segurança absolutos e autorrelativos.
CSecurityDesc::MakeSelfRelative
Chame esse método para converter o descritor de segurança ao formato autorrelativo.
bool MakeSelfRelative() throw(...);
Valor de retorno
Retornará true se o método tiver êxito, caso contrário, retornará false.
Comentários
Um descritor de segurança em formato absoluto contém ponteiros para as informações presentes nele em vez das informações em si. Um descritor de segurança em formato autorrelativo contém as informações em um bloco de memória contíguo. Em um descritor de segurança autorrelativo, uma estrutura SECURITY_DESCRIPTOR
sempre inicia as informações, mas 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. Esse formato é útil quando um for preciso armazenar um descritor de segurança em um disco ou transmiti-lo por meio de um protocolo de comunicação. Para obter mais informações, confira Descritores de segurança absolutos e autorrelativos.
CSecurityDesc::operator =
Operador de atribuição.
CSecurityDesc& operator= (const SECURITY_DESCRIPTOR& rhs) throw(...);
CSecurityDesc& operator= (const CSecurityDesc& rhs) throw(...);
Parâmetros
rhs
A estrutura SECURITY_DESCRIPTOR
ou o objeto CSecurityDesc
a serem atribuídos ao objeto CSecurityDesc
.
Valor de retorno
Retorna o objeto atualizado CSecurityDesc
.
CSecurityDesc::operator const SECURITY_DESCRIPTOR *
Converte um valor em um ponteiro para a estrutura SECURITY_DESCRIPTOR
.
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
ControlBitsOfInterest
Uma máscara SECURITY_DESCRIPTOR_CONTROL que indica os bits de controle a serem definidos. Para obter uma lista dos sinalizadores que podem ser definidos, confira SetSecurityDescriptorControl.
ControlBitsToSet
Uma máscara SECURITY_DESCRIPTOR_CONTROL que indica os novos valores para os bits de controle especificados pela máscara ControlBitsOfInterest. Esse parâmetro pode ser uma combinação dos sinalizadores listados para o parâmetro ControlBitsOfInterest.
Valor de retorno
Retorna true em caso de êxito, false em caso de falha.
Comentários
Esse método chama SetSecurityDescriptorControl.
CSecurityDesc::SetDacl
Define informações em uma DACL (lista de controle de acesso discricionário). Se já houver uma DACL presente no descritor de segurança, ela será substituída.
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 objeto CDacl
que especifica a DACL para o descritor de segurança. Esse parâmetro não deve ser NULL. Para definir uma DACL NULL no descritor de segurança, a primeira forma do método deve ser usada com o bPresent definido como false.
bPresent
Especifica um sinalizador que indica a presença de uma DACL no descritor de segurança. Se esse parâmetro for true, o método definirá o sinalizador SE_DACL_PRESENT na estrutura SECURITY_DESCRIPTOR_CONTROL
e usará os valores nos parâmetros Dacl e bDefaulted. Se for false, o método limpará o sinalizador SE_DACL_PRESENT e o bDefaulted será ignorado.
bDefaulted
Especifica um sinalizador que indica a origem da DACL. Se esse sinalizador for true, a DACL foi recuperada por algum mecanismo padrão. Se for false, a DACL foi explicitamente especificada por um usuário. O método armazena esse valor no sinalizador SE_DACL_DEFAULTED da estrutura SECURITY_DESCRIPTOR_CONTROL
. Se esse parâmetro não estiver especificado, o sinalizador SE_DACL_DEFAULTED estará limpo.
Valor de retorno
Retorna true em caso de êxito, false em caso de falha.
Comentários
Há uma grande diferença entre uma DACL vazia e uma DACL inexistente. Quando uma DACL está vazia, ela não contém entradas de controle de acesso, e nenhum direito de acesso foi concedido explicitamente. Como resultado, o acesso ao objeto é negado implicitamente. Por outro lado, quando um objeto não tem uma DACL, nenhuma proteção é atribuída ao objeto, e qualquer solicitação de acesso será concedida.
CSecurityDesc::SetGroup
Define as informações do grupo primário de um descritor de segurança de formato absoluto, substituindo todas as informações do grupo primário já presentes.
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. Esse parâmetro não deve ser NULL. Um descritor de segurança pode ser marcado como não contendo uma DACL ou uma SACL, mas ele deve ter um grupo e um proprietário, mesmo que sejam o SID NULL (que é um SID interno com um significado especial).
bDefaulted
Indica se as informações do grupo primário são derivadas de um mecanismo padrão. Se esse valor for true, serão informações padrão, e o método armazenará esse valor como o sinalizador SE_GROUP_DEFAULTED na estrutura SECURITY_DESCRIPTOR_CONTROL
. Se esse parâmetro for zero, o sinalizador SE_GROUP_DEFAULTED estará limpo.
Valor de retorno
Retorna true em caso de êxito, false em caso de falha.
CSecurityDesc::SetOwner
Define as informações de proprietário de um descritor de segurança de formato absoluto. Ele substitui todas as informações de proprietário já presentes.
bool SetOwner(const CSid& Sid, bool bDefaulted = false) throw(...);
Parâmetros
Sid
O objeto CSid do novo proprietário primário do descritor de segurança. Esse parâmetro não deve ser NULL.
bDefaulted
Indica se as informações de proprietário são derivadas de um mecanismo padrão. Se esse valor for true, serão informações padrão. O método armazena esse valor como o sinalizador SE_OWNER_DEFAULTED na estrutura SECURITY_DESCRIPTOR_CONTROL
. Se esse parâmetro for zero, o sinalizador SE_OWNER_DEFAULTED estará limpo.
Valor de retorno
Retorna true em caso de êxito, false em caso de falha.
CSecurityDesc::SetSacl
Define informações em uma SACL (lista de controle de acesso do sistema). Se já houver uma SACL presente no descritor de segurança, ela será substituída.
bool SetSacl(const CSacl& Sacl, bool bDefaulted = false) throw(...);
Parâmetros
Sacl
Ponteiro para um objeto CSacl
especificando a SACL do descritor de segurança. Esse parâmetro não deve ser NULL e deve ser um objeto CSacl. Ao contrário das DACLs, não há diferença entre NULL e uma SACL vazia, pois os objetos da SACL não especificam direitos de acesso, apenas informações de auditoria.
bDefaulted
Especifica um sinalizador que indica a origem da SACL. Se esse sinalizador for true, a SACL foi recuperada por algum mecanismo padrão. Se for false, a SACL foi explicitamente especificada por um usuário. O método armazena esse valor no sinalizador SE_SACL_DEFAULTED da estrutura SECURITY_DESCRIPTOR_CONTROL
. Se esse parâmetro não estiver especificado, o sinalizador SE_SACL_DEFAULTED estará limpo.
Valor de retorno
Retorna true em caso de êxito, false em caso de falha.
CSecurityDesc::ToString
Converte um descritor de segurança em um formato de cadeia de caracteres.
bool ToString(
CString* pstr, SECURITY_INFORMATION si = OWNER_SECURITY_INFORMATION |
GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION |
SACL_SECURITY_INFORMATION) const throw(...);
Parâmetros
pstr
Ponteiro para uma cadeia de caracteres terminada em nulo que receberá o descritor de segurança de formato de cadeia de caracteres.
sim
Especifica uma combinação de sinalizadores bit SECURITY_INFORMATION para indicar os componentes do descritor de segurança a serem incluídos na cadeia de caracteres de saída.
Valor de retorno
Retorna true em caso de êxito, false em caso de falha.
Comentários
Assim que o descritor de segurança estiver no formato de cadeia de caracteres, ele poderá ser armazenado ou transmitido com mais facilidade. Use o método CSecurityDesc::FromString
para converter a cadeia de caracteres de volta em um descritor de segurança.
O parâmetro si pode conter os seguintes sinalizadores SECURITY_INFORMATION:
Valor | Significado |
---|---|
OWNER_SECURITY_INFORMATION | Incluir o proprietário. |
GROUP_SECURITY_INFORMATION | Incluir o grupo primário. |
DACL_SECURITY_INFORMATION | Incluir a DACL. |
SACL_SECURITY_INFORMATION | Incluir a SACL. |
Se a DACL for NULL e o bit de controle SE_DACL_PRESENT estiver definido no descritor de segurança de entrada, o método falhará.
Se a DACL for NULL e o bit de controle SE_DACL_PRESENT não estiver definido no descritor de segurança de entrada, a cadeia de caracteres do descritor de segurança resultante não terá um componente D:. Confira Formato de cadeia de caracteres do descritor de segurança para obter mais detalhes.
Esse método chama ConvertStringSecurityDescriptorToSecurityDescriptor.
Confira também
Exemplo de Segurança
SECURITY_DESCRIPTOR
Visão geral da aula
Funções globais de segurança