Compartilhar via


Função DsInheritSecurityIdentityA (ntdsapi.h)

A função DsInheritSecurityIdentity acrescenta os atributos objectSid e sidHistory de SrcPrincipal ao sidHistory de DstPrincipal e, em seguida, exclui SrcPrincipal, tudo em uma única transação. Para garantir que essa operação seja atômica, SrcPrincipal e DstPrincipal devem estar no mesmo domínio e o hDS deve estar associado a um controlador de domínio que as permissões corretas dentro desse domínio.

Sintaxe

NTDSAPI DWORD DsInheritSecurityIdentityA(
  [in] HANDLE hDS,
  [in] DWORD  Flags,
  [in] LPCSTR SrcPrincipal,
  [in] LPCSTR DstPrincipal
);

Parâmetros

[in] hDS

Contém um identificador de serviço de diretório obtido da função DSBind ou DSBindWithCred .

[in] Flags

Reservado para uso futuro. Deve ser zero.

[in] SrcPrincipal

Ponteiro para uma cadeia de caracteres terminada em nulo que especifica o nome de uma entidade de segurança (usuário ou grupo) no domínio de origem. Esse nome é um nome SAM relativo ao domínio.

[in] DstPrincipal

Ponteiro para uma cadeia de caracteres terminada em nulo que especifica o nome de uma entidade de segurança (usuário ou grupo) no domínio de destino. Esse nome SAM relativo ao domínio identifica a entidade de segurança cujo atributo sidHistory será atualizado com o SID de SrcPrincipal.

Retornar valor

Retorna um código de erro do sistema ou RPC, incluindo o seguinte.

Comentários

Com aplicativos de domínio de atualização do sistema operacional, que abrangem domínios atualizados e não atualizados, podem ter entidades de segurança dentro e fora da floresta para a mesma entidade lógica ao mesmo tempo.

Quando todos os domínios atualizados ingressaram na mesma floresta, DsInheritSecurityIdentity eliminará os objetos duplicados, garantindo que os objetos restantes tenham todos os direitos de segurança e privilégios pertencentes ao respectivo objeto excluído.

Uma implementação DsInheritSecurityIdentity :

  • Verifica se SrcPrincipal e DstPrincipal estão no mesmo domínio.
  • Verifica se o domínio é gravável na associação ao servidor.
  • Verifica se a auditoria está habilitada para o domínio.
  • Verifica se o chamador é um membro dos administradores de domínio do domínio.
  • Verifica se o domínio está no modo nativo.
  • Verifica se srcPrincipal existe, se ele é uma entidade de segurança e leu suas propriedades objectSid e sidHistory .
  • Verifica se o DstPrincipal existe, se é uma entidade de segurança e leu determinadas propriedades necessárias para auditoria e verificação.
  • Exclui SrcPrincipal no banco de dados somente se toda a operação for confirmada na conclusão. Essa operação falhará se o chamador não tiver direitos de exclusão ou se SrcPrincipal tiver filhos.
  • Falha na operação se o objectSid de SrcPrincipal ou DstPrincipal for um SID bem conhecido.
  • Adiciona o objectSid e o sidHistory (se presente) de SrcPrincipal ao sidHistory de DstPrincipal.
  • Força um evento de auditoria e falha na operação se a auditoria falhar.
  • Insere eventos no Log do Serviço de Diretório. Não confunda isso com o Log de Auditoria de Segurança.

Observação

O cabeçalho ntdsapi.h define DsInheritSecurityIdentity como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho ntdsapi.h
Biblioteca Ntdsapi.lib
DLL Ntdsapi.dll

Confira também

DSBind

DSBindWithCred

Funções de gerenciamento de replicação e controlador de domínio