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(...);

Retornar valor

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(...);

Retornar valor

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.

Retornar valor

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();

Retornar valor

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(...);

Retornar valor

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();

Retornar valor

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.

Retornar valor

Retorna a subautoridade referenciada por nSubAuthority. O valor de subautoridade é um RID (identificador relativo).

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();

Retornar valor

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();

Retornar valor

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.

Retornar valor

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.

Retornar valor

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 ==.

Retornar valor

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 !=.

Retornar valor

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 <.

Retornar valor

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 <=.

Retornar valor

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 >.

Retornar valor

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 >=.

Retornar valor

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(...);

Retornar valor

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();

Retornar valor

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