Condividi tramite


Funzione DsInheritSecurityIdentityA (ntdsapi.h)

La funzione DsInheritSecurityIdentity accoda gli attributi objectSid e sidHistory di SrcPrinci sidHistory di DstPrincipal e quindi elimina SrcPrincipal, tutti in una singola transazione. Per assicurarsi che questa operazione sia atomica, SrcPrincipal e DstPrincipal devono trovarsi nello stesso dominio e hDS deve essere associato 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 uso futuro. 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.

Osservazioni

Con le applicazioni di dominio di aggiornamento del sistema operativo, che si estendono sia su domini aggiornati che 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 sono stati aggiunti alla 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 di DsInheritSecurityIdentity:

  • Verifica che SrcPrincipal e DstPrincipal si trovino nello stesso dominio.
  • Verifica che il dominio sia scrivibile nel binding 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 esista SrcPrincipal, che si tratti di un'entità di sicurezza e abbia letto il relativo oggetto Id e proprietà sidHistory.
  • Verifica che esista DstPrincipal, che si tratti di 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.
  • Non riesce l'operazione se l'oggetto OggettoSid di SrcPrincipal o DstPrincipal è un SID noto.
  • Aggiunge il objectSid e il sidHistory (se presente) di SrcPrincipal al sidHistory di DstPrincipal.
  • Forza un evento di controllo e non riesce l'operazione se il controllo non riesce.
  • 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 non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista
server minimo supportato Windows Server 2008
piattaforma di destinazione Finestre
intestazione ntdsapi.h
libreria Ntdsapi.lib
dll Ntdsapi.dll

Vedere anche

DSBind

DSBindWithCred

controller di dominio e funzioni di gestione della replica