Поделиться через


Функция DsInheritSecurityIdentityA (ntdsapi.h)

Функция dsInheritSecurityIdentity добавляет атрибуты objectSid и sidHistory атрибутов SrcPrincipal sidHistory DstPrincipal, а затем удаляет SrcPrincipal, все в одной транзакции. Чтобы убедиться, что эта операция атомарна, SrcPrincipal и DstPrincipal должны находиться в одном домене и HDS должны быть привязаны к контроллеру домена, которому необходимы правильные разрешения в этом домене.

Синтаксис

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

Параметры

[in] hDS

Содержит дескриптор службы каталогов, полученный из функции DSBind или DSBindWithCred.

[in] Flags

Зарезервировано для дальнейшего использования. Должно быть равно нулю.

[in] SrcPrincipal

Указатель на строку, завершающуюся значением NULL, которая указывает имя субъекта безопасности (пользователя или группы) в исходном домене. Это имя является относительным доменом SAM name.

[in] DstPrincipal

Указатель на строку, завершающую значение NULL, которая указывает имя субъекта безопасности (пользователя или группы) в целевом домене. Это имя SAM относительно домена определяет субъект, атрибут будет обновлен с идентификатором безопасности SrcPrincipal.

Возвращаемое значение

Возвращает код ошибки системы или RPC, включая следующий код.

Замечания

При использовании приложений домена обновления операционной системы, охватывающих как обновленные, так и не обновленные домены, могут быть субъекты безопасности внутри и вне леса для одной логической сущности одновременно.

При присоединении всех обновленных доменов к одному лесу dsInheritSecurityIdentity устраняет повторяющиеся объекты, обеспечивая наличие всех оставшихся объектов прав безопасности и привилегий, принадлежащих соответствующему удаленному объекту.

Реализация dsInheritSecurityIdentity :

  • Проверяет, что SrcPrincipal и DstPrincipal находятся в одном домене.
  • Проверяет, является ли домен записываемым в привязке к серверу.
  • Проверяет, включена ли аудит для домена.
  • Проверяет, что вызывающий объект является членом администраторов домена для домена.
  • Проверяет, находится ли домен в собственном режиме.
  • Проверяет, существует ли SrcPrincipal, что он является субъектом безопасности и считывает свойства objectSid и sidHistory.
  • Проверяет, существует ли DstPrincipal, что он является субъектом безопасности и имеет определенные свойства, необходимые для аудита и проверки.
  • Удаляет SrcPrincipal в базе данных, только если вся операция зафиксирована при завершении. Эта операция завершается ошибкой, если вызывающий объект не имеет прав на удаление или если SrcPrincipal имеет дочерние элементы.
  • Сбой операции, если objectSidSrcPrincipal или DstPrincipal является хорошо известным идентификатором безопасности.
  • Добавляет objectSid и sidHistory (если присутствует) SrcPrincipal в sidHistoryDstPrincipal.
  • Принудительно вызывает событие аудита и завершается сбоем операции, если аудит завершается ошибкой.
  • Вводит события в журнал службы каталогов. Не путайте это с журналом аудита безопасности.

Заметка

Заголовок ntdsapi.h определяет DsInheritSecurityIdentity как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
минимальный поддерживаемый сервер Windows Server 2008
целевая платформа Виндоус
заголовка ntdsapi.h
библиотеки Ntdsapi.lib
DLL Ntdsapi.dll

См. также

DSBind

DSBindWithCred

функции управления доменами и репликацией