Compartir a través de


Función DsInheritSecurityIdentityA (ntdsapi.h)

La función DsInheritSecurityIdentity anexa los atributos objectSid y sidHistory de SrcPrincipal al sidHistory de DstPrincipal y, a continuación, elimina SrcPrincipal, todo en una sola transacción. Para asegurarse de que esta operación es atómica, SrcPrincipal y DstPrincipal deben estar en el mismo dominio y hDS debe estar enlazado a un controlador de dominio que los permisos correctos dentro de ese dominio.

Sintaxis

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

Parámetros

[in] hDS

Contiene un identificador de servicio de directorio obtenido de la función DSBind o DSBindWithCred .

[in] Flags

Reservado para uso futuro. Debe ser cero.

[in] SrcPrincipal

Puntero a una cadena terminada en null que especifica el nombre de una entidad de seguridad (usuario o grupo) en el dominio de origen. Este nombre es un nombre SAM relativo al dominio.

[in] DstPrincipal

Puntero a una cadena terminada en null que especifica el nombre de una entidad de seguridad (usuario o grupo) en el dominio de destino. Este nombre SAM relativo al dominio identifica la entidad de seguridad cuyo atributo sidHistory se actualizará con el SID de SrcPrincipal.

Valor devuelto

Devuelve un código de error rpc o del sistema, incluido lo siguiente.

Comentarios

Con una aplicación de dominio de actualización del sistema operativo, que abarca dominios actualizados y no actualizados, puede tener entidades de seguridad dentro y fuera del bosque para la misma entidad lógica al mismo tiempo.

Cuando todos los dominios actualizados se han unido al mismo bosque, DsInheritSecurityIdentity elimina los objetos duplicados, a la vez que garantiza que los objetos restantes tengan todos los derechos de seguridad y privilegios que pertenecen a su objeto eliminado respectivo.

Implementación de DsInheritSecurityIdentity :

  • Comprueba que SrcPrincipal y DstPrincipal están en el mismo dominio.
  • Comprueba que el dominio se puede escribir en el enlace al servidor.
  • Comprueba que la auditoría está habilitada para el dominio.
  • Comprueba que el autor de la llamada es miembro de los administradores de dominio del dominio.
  • Comprueba que el dominio está en modo nativo.
  • Comprueba que SrcPrincipal existe, que es una entidad de seguridad y ha leído sus propiedades objectSid y sidHistory .
  • Comprueba que DstPrincipal existe, que es una entidad de seguridad y que ha leído determinadas propiedades necesarias para la auditoría y comprobación.
  • Elimina SrcPrincipal en la base de datos solo si toda la operación se confirma al finalizar. Esta operación produce un error si el autor de la llamada no tiene derechos de eliminación o si SrcPrincipal tiene elementos secundarios.
  • Se produce un error en la operación si el objectSid de SrcPrincipal o DstPrincipal es un SID conocido.
  • Agrega el objectSid y el sidHistory (si existe) de SrcPrincipal al sidHistory de DstPrincipal.
  • Fuerza un evento de auditoría y produce un error en la operación si se produce un error en la auditoría.
  • Escribe eventos en el registro del servicio de directorio. No confunda esto con el registro de auditoría de seguridad.

Nota

El encabezado ntdsapi.h define DsInheritSecurityIdentity como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado ntdsapi.h
Library Ntdsapi.lib
Archivo DLL Ntdsapi.dll

Consulte también

DSBind

DSBindWithCred

Funciones de administración de controlador de dominio y replicación