Funzione DsInheritSecurityIdentityA (ntdsapi.h)

La funzione DsInheritSecurityIdentity aggiunge gli attributi objectSid e sidHistory di SrcPrincipal al sidHistory di DstPrincipal e quindi elimina SrcPrincipal, tutti in una singola transazione. Per garantire che questa operazione sia atomica, SrcPrincipal e DstPrincipal devono trovarsi nello stesso dominio e hDS devono essere associati a un controller di dominio che le autorizzazioni corrette all'interno di tale dominio.

Sintassi

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

Parametri

[in] hDS

Contiene un handle del servizio directory ottenuto dalla funzione DSBind o DSBindWithCred .

[in] Flags

Riservato per utilizzi futuri. Deve essere zero.

[in] SrcPrincipal

Puntatore a una stringa con terminazione Null che specifica il nome di un'entità di sicurezza (utente o gruppo) nel dominio di origine. Questo nome è un nome SAM relativo al dominio.

[in] DstPrincipal

Puntatore a una stringa con terminazione Null che specifica il nome di un'entità di sicurezza (utente o gruppo) nel dominio di destinazione. Questo nome SAM relativo al dominio identifica l'entità il cui attributo sidHistory verrà aggiornato con il SID di SrcPrincipal.

Valore restituito

Restituisce un codice di errore RPC o di sistema, incluso quanto segue.

Commenti

Con un'applicazione di dominio di aggiornamento del sistema operativo, che si estende su domini aggiornati e non aggiornati, possono avere entità di sicurezza all'interno e all'esterno della foresta per la stessa entità logica contemporaneamente.

Quando tutti i domini aggiornati hanno unito la stessa foresta, DsInheritSecurityIdentity elimina gli oggetti duplicati assicurando al tempo stesso che gli oggetti rimanenti abbiano tutti i diritti di sicurezza e i privilegi appartenenti al rispettivo oggetto eliminato.

Implementazione DsInheritSecurityIdentity:

  • Verifica che SrcPrincipal e DstPrincipal si trovino nello stesso dominio.
  • Verifica che il dominio sia scrivibile in corrispondenza dell'associazione al server.
  • Verifica che il controllo sia abilitato per il dominio.
  • Verifica che il chiamante sia membro degli amministratori di dominio per il dominio.
  • Verifica che il dominio sia in modalità nativa.
  • Verifica che SrcPrincipal esista, che sia un'entità di sicurezza e abbia letto le proprietà objectSid e sidHistory .
  • Verifica che DstPrincipal esista, che sia un'entità di sicurezza e abbia letto determinate proprietà necessarie per il controllo e la verifica.
  • Elimina SrcPrincipal nel database solo se viene eseguito il commit dell'intera operazione al completamento. Questa operazione ha esito negativo se il chiamante non dispone di diritti di eliminazione o se SrcPrincipal ha figli.
  • L'operazione ha esito negativo se l'oggettoSid di SrcPrincipal o DstPrincipal è un SID noto.
  • Aggiunge l'oggettoSid e il sidHistory (se presente) di SrcPrincipal al sidHistory di DstPrincipal.
  • Forza un evento di controllo e non riesce l'operazione se il controllo ha esito negativo.
  • Inserisce gli eventi nel log del servizio directory. Non confondere questa operazione con il log di controllo della sicurezza.

Nota

L'intestazione ntdsapi.h definisce DsInheritSecurityIdentity come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione ntdsapi.h
Libreria Ntdsapi.lib
DLL Ntdsapi.dll

Vedi anche

DSBind

DSBindWithCred

Funzioni di gestione del controller di dominio e della replica