Classe CSid
Essa classe é um wrapper para uma estrutura SID
(identificador de segurança).
Importante
Essa classe e seus membros não podem ser usados em aplicativos executados no Windows Runtime.
Sintaxe
class CSid;
Membros
Typedefs públicos
Nome | Descrição |
---|---|
CSid::CSidArray |
Uma matriz de objetos CSid . |
Construtores públicos
Nome | Descrição |
---|---|
CSid::CSid |
O construtor . |
CSid::~CSid |
O destruidor. |
Métodos públicos
Nome | Descrição |
---|---|
CSid::AccountName |
Retorna o nome da conta associada ao objeto CSid . |
CSid::Domain |
Retorna o nome do domínio associado ao objeto CSid . |
CSid::EqualPrefix |
Testes SID (identificador de segurança) prefixos para igualdade. |
CSid::GetLength |
Retorna o comprimento do objeto CSid . |
CSid::GetPSID |
Retorna um ponteiro para uma estrutura SID . |
CSid::GetPSID_IDENTIFIER_AUTHORITY |
Retorna um ponteiro para a estrutura SID_IDENTIFIER_AUTHORITY . |
CSid::GetSubAuthority |
Retorna uma subautoridade especificada em uma estrutura SID . |
CSid::GetSubAuthorityCount |
Retorna a contagem de subautoridade. |
CSid::IsValid |
Testa o objeto CSid para validade. |
CSid::LoadAccount |
Atualiza o objeto CSid , considerando o nome da conta ou domínio, ou uma estrutura SID existente. |
CSid::Sid |
Retorna a cadeia de caracteres de ID. |
CSid::SidNameUse |
Retorna uma descrição do estado do objeto CSid . |
Operadores
Nome | Descrição |
---|---|
CSid::operator = |
Operador de atribuição. |
CSid::operator const SID * |
Converte um objeto CSid em um ponteiro para uma estrutura SID . |
Operadores Globais
Nome | Descrição |
---|---|
operator == |
Testa dois objetos descritores de segurança para igualdade |
operator != |
Testa dois objetos descritores de segurança para desigualdade |
operator < |
Compara o valor relativo de dois objetos descritores de segurança. |
operator > |
Compara o valor relativo de dois objetos descritores de segurança. |
operator <= |
Compara o valor relativo de dois objetos descritores de segurança. |
operator >= |
Compara o valor relativo de dois objetos descritores de segurança. |
Comentários
A estrutura SID
é uma estrutura de comprimento variável usada para identificar exclusivamente usuários ou grupos.
Os aplicativos não devem modificar a estrutura SID
diretamente, mas usar os métodos fornecidos nesta classe wrapper. Consulte também AtlGetOwnerSid
, AtlSetGroupSid
, AtlGetGroupSid
, e AtlSetOwnerSid
.
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
CSid::AccountName
Retorna o nome da conta associada ao objeto CSid
.
LPCTSTR AccountName() const throw(...);
Valor retornado
Retorna o apontamento LPCTSTR
para o nome da conta.
Comentários
Esse método tenta encontrar um nome para o SID
especificado (identificador de segurança). Para obter detalhes completos, consulte LookupAccountSid
.
Se nenhum nome de conta para SID
for encontrado, AccountName
retornará uma cadeia de caracteres vazia. Esse resultado pode ocorrer se um tempo limite de rede impedir que esse método localize o nome. Também ocorre para identificadores de segurança sem nome de conta correspondente, como um SID
que identifica uma sessão de entrada.
CSid::CSid
O construtor .
CSid() throw();
CSid(const SID& rhs) throw(...);
CSid(const CSid& rhs) throw(...);
CSid(
const SID_IDENTIFIER_AUTHORITY& IdentifierAuthority,
BYTE nSubAuthorityCount,
...) throw(...);
explicit CSid(
LPCTSTR pszAccountName,
LPCTSTR pszSystem = NULL) throw(...);
explicit CSid(
const SID* pSid,
LPCTSTR pszSystem = NULL) throw(...);
Parâmetros
rhs
Um objeto CSid
existente ou uma estrutura SID
(identificador de segurança).
IdentifierAuthority
A autoridade.
nSubAuthorityCount
A contagem de subautoridade.
pszAccountName
O nome da conta.
pszSystem
Nome do sistema de arquivos. Essa cadeia de caracteres pode ser o nome de um computador remoto. Se essa cadeia de caracteres for NULL, o sistema local será usado.
pSid
Um ponteiro para uma estrutura SID
.
Comentários
O construtor inicializa o objeto CSid
, definindo um membro de dados interno para SidTypeInvalid
, ou copiando as configurações de um CSid
existente, SID
, ou conta existente.
Se a inicialização falhar, o construtor lançará uma CAtlException
Classe.
CSid::~CSid
O destruidor.
virtual ~CSid() throw();
Comentários
O destruidor libera todos os recursos adquiridos pelo objeto.
CSid::CSidArray
Uma matriz de objetos CSid
.
typedef CAtlArray<CSid> CSidArray;
Comentários
Esse typedef especifica o tipo de matriz que pode ser usado para recuperar identificadores de segurança de uma ACL (lista de controle de acesso). Consulte CAcl::GetAclEntries
.
CSid::Domain
Retorna o nome do domínio associado ao objeto CSid
.
LPCTSTR Domain() const throw(...);
Valor retornado
Retorna o apontamento LPCTSTR
para o domínio.
Comentários
Esse método tenta encontrar um nome para o SID
especificado (identificador de segurança). Para obter detalhes completos, consulte LookupAccountSid
.
Se nenhum nome de conta para SID
for encontrado, Domain
retornará o domínio como uma cadeia de caracteres vazia. Esse resultado pode ocorrer se um tempo limite de rede impedir que esse método localize o nome. Também ocorre para identificadores de segurança sem nome de conta correspondente, como um SID
que identifica uma sessão de entrada.
CSid::EqualPrefix
Testes SID
(identificador de segurança) prefixos para igualdade.
bool EqualPrefix(const SID& rhs) const throw();
bool EqualPrefix(const CSid& rhs) const throw();
Parâmetros
rhs
A estrutura SID
(identificador de segurança) ou o objeto CSid
a ser comparado.
Valor retornado
Retornará TRUE
se for bem-sucedido, FALSE
em caso de falha.
Comentários
Para obter mais informações, consulte EqualPrefixSid
.
CSid::GetLength
Retorna o comprimento do objeto CSid
.
UINT GetLength() const throw();
Valor retornado
Retorna o comprimento em bytes do objeto CSid
.
Comentários
Se a estrutura CSid
não for válida, o valor retornado será indefinido. Antes de chamar GetLength
, use a função CSid::IsValid
membro para verificar se CSid
é válido.
Observação
Em compilações de depuração, a função causará um ASSERT se o objeto CSid
não for válido.
CSid::GetPSID
Retorna um ponteiro para uma estrutura SID
(identificador de segurança).
const SID* GetPSID() const throw(...);
Valor retornado
Retorna o endereço da estrutura CSid
subjacente SID
do objeto.
CSid::GetPSID_IDENTIFIER_AUTHORITY
Retorna um ponteiro para a estrutura SID_IDENTIFIER_AUTHORITY
.
const SID_IDENTIFIER_AUTHORITY* GetPSID_IDENTIFIER_AUTHORITY() const throw();
Valor retornado
Se o método for bem-sucedido, ele retornará o endereço da estrutura SID_IDENTIFIER_AUTHORITY
. Se falhar, o valor retornado será indefinido. A falha poderá ocorrer se o objeto CSid
não for válido, nesse caso, o método CSid::IsValid
retornará FALSE
. A função GetLastError
pode ser chamada para obter informações de erro estendidas.
Observação
Em compilações de depuração, a função causará um ASSERT se o objeto CSid
não for válido.
CSid::GetSubAuthority
Retorna uma subautoridade especificada em uma estrutura SID
(identificador de segurança).
DWORD GetSubAuthority(DWORD nSubAuthority) const throw();
Parâmetros
nSubAuthority
A subautoridade.
Valor retornado
Retorna a subautoridade referenciada por nSubAuthority
. O valor de subautoridade é umidentificador relativo (RID).
Comentários
O parâmetro nSubAuthority
especifica um valor de índice que identifica o elemento de matriz de subautoridade que o método retornará. O método não executa nenhum teste de validação nesse valor. Um aplicativo pode chamar CSid::GetSubAuthorityCount
para descobrir o intervalo de valores aceitáveis.
Observação
Em compilações de depuração, a função causará um ASSERT se o objeto CSid
não for válido.
CSid::GetSubAuthorityCount
Retorna a contagem de subautoridade.
UCHAR GetSubAuthorityCount() const throw();
Valor retornado
Se o método for bem-sucedido, o valor retornado será a contagem de subautoridade.
Se o método falhar, o valor retornado será indefinido. O método falhará se o objeto CSid
for inválido. Para obter outras informações sobre o erro, chame GetLastError
.
Observação
Em compilações de depuração, a função causará um ASSERT se o objeto CSid
não for válido.
CSid::IsValid
Testa o objeto CSid
para validade.
bool IsValid() const throw();
Valor retornado
Retorna TRUE
se o objeto CSid
for válido, FALSE
se não. Não há informações de erro estendidas para este método, não chame GetLastError
.
Comentários
O método IsValid
valida o objeto CSid
verificando se o número de revisão está dentro de um intervalo conhecido e se o número de subautoridades é menor que o máximo.
CSid::LoadAccount
Atualiza o objeto CSid
, considerando o nome da conta e o domínio ou uma estrutura SID
existente (identificador de segurança).
bool LoadAccount(
LPCTSTR pszAccountName,
LPCTSTR pszSystem = NULL) throw(...);
bool LoadAccount(
const SID* pSid,
LPCTSTR pszSystem = NULL) throw(...);
Parâmetros
pszAccountName
O nome da conta.
pszSystem
Nome do sistema de arquivos. Essa cadeia de caracteres pode ser o nome de um computador remoto. Se essa cadeia de caracteres for NULL, o sistema local será usado.
pSid
Um ponteiro para uma estrutura SID
.
Valor retornado
Retornará TRUE
se for bem-sucedido, FALSE
em caso de falha. Para obter outras informações sobre o erro, chame GetLastError
.
Comentários
LoadAccount
tenta encontrar um identificador de segurança para o nome especificado. Para obter mais informações, consulte LookupAccountSid
.
CSid::operator =
Operador de atribuição.
CSid& operator= (const CSid& rhs) throw(...);
CSid& operator= (const SID& rhs) throw(...);
Parâmetros
rhs
O SID
(identificador de segurança) ou CSid
para atribuir ao objeto CSid
.
Valor retornado
Retorna uma referência ao objeto CSid
atualizado.
operator ==
Testa dois objetos descritores de segurança para igualdade.
bool operator==(
const CSid& lhs,
const CSid& rhs) throw();
Parâmetros
lhs
O SID
(identificador de segurança) ou CSid
que aparece no lado esquerdo do operador ==
.
rhs
O SID
(identificador de segurança) ou CSid
que aparece no lado direito do operador ==
.
Valor retornado
TRUE
se os descritores de segurança forem iguais, caso contrário FALSE
.
operator !=
Testa dois objetos descritores de segurança para desigualdade.
bool operator!=(
const CSid& lhs,
const CSid& rhs) throw();
Parâmetros
lhs
O SID
(identificador de segurança) ou CSid
que aparece no lado esquerdo do operador !=
.
rhs
O SID
(identificador de segurança) ou CSid
que aparece no lado direito do operador !=
.
Valor retornado
TRUE
se os descritores de segurança não forem iguais, caso contrário FALSE
.
operator <
Compara o valor relativo de dois objetos descritores de segurança.
bool operator<(
const CSid& lhs,
const CSid& rhs) throw();
Parâmetros
lhs
O SID
(identificador de segurança) ou CSid
que aparece no lado esquerdo do operador <
.
rhs
O SID
(identificador de segurança) ou CSid
que aparece no lado direito do operador <
.
Valor retornado
TRUE
se lhs
for menor que rhs
, caso contrário, FALSE
.
operator <=
Compara o valor relativo de dois objetos descritores de segurança.
bool operator<=(
const CSid& lhs,
const CSid& rhs) throw();
Parâmetros
lhs
O SID
(identificador de segurança) ou CSid
que aparece no lado esquerdo do operador <=
.
rhs
O SID
(identificador de segurança) ou CSid
que aparece no lado direito do operador <=
.
Valor retornado
TRUE
se lhs
for menor ou igual a rhs
, caso contrário, FALSE
.
operator >
Compara o valor relativo de dois objetos descritores de segurança.
bool operator>(
const CSid& lhs,
const CSid& rhs) throw();
Parâmetros
lhs
O SID
(identificador de segurança) ou CSid
que aparece no lado esquerdo do operador >
.
rhs
O SID
(identificador de segurança) ou CSid
que aparece no lado direito do operador >
.
Valor retornado
TRUE
se lhs
for maior que rhs
, caso contrário, FALSE
.
operator >=
Compara o valor relativo de dois objetos descritores de segurança.
bool operator>=(
const CSid& lhs,
const CSid& rhs) throw());
Parâmetros
lhs
O SID
(identificador de segurança) ou CSid
que aparece no lado esquerdo do operador >=
.
rhs
O SID
(identificador de segurança) ou CSid
que aparece no lado direito do operador >=
.
Valor retornado
TRUE
se lhs
for maior ou igual a rhs
, caso contrário, FALSE
.
CSid::operator const SID *
Converte um objeto CSid
em um ponteiro para uma estrutura SID
(identificador de segurança).
operator const SID *() const;
Comentários
Retorna o endereço da estrutura SID
.
CSid::Sid
Retorna a estrutura SID
(identificador de segurança) como uma cadeia de caracteres.
LPCTSTR Sid() const throw(...);
Valor retornado
Retorna a estrutura SID
como uma cadeia de caracteres em um formato adequado para exibição, armazenamento ou transmissão. Equivalente a ConvertSidToStringSid
.
CSid::SidNameUse
Retorna uma descrição do estado do objeto CSid
.
SID_NAME_USE SidNameUse() const throw();
Valor retornado
Retorna o valor do membro de dados que armazena um valor que descreve o estado do objeto CSid
.
Valor | Descrição |
---|---|
SidTypeUser | Indica um usuário SID (identificador de segurança). |
SidTypeGroup | Indica um grupo SID . |
SidTypeDomain | Indica um domínio SID . |
SidTypeAlias | Indica um alias SID . |
SidTypeWellKnownGroup | Indica um SID para um grupo bem conhecido. |
SidTypeDeletedAccount | Indica um SID para uma conta excluída. |
SidTypeInvalid | Indica um SID inválido. |
SidTypeUnknown | Indica um tipo SID desconhecido. |
SidTypeComputer | Indica um SID para um computador. |
Comentários
Chame CSid::LoadAccount
para atualizar o objeto CSid
antes de chamar SidNameUse
para retornar seu estado. SidNameUse
não altera o estado do objeto (ao chamar LookupAccountName
ou LookupAccountSid
), mas retorna apenas o estado atual.
Confira também
Amostra de segurança
Visão geral de classe
Funções globais de segurança
Operadores