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


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

Функция DsInheritSecurityIdentity добавляет атрибуты objectSid и sidHistorySrcPrincipal в sidHistoryDstPrincipal , а затем удаляет 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.

[in] DstPrincipal

Указатель на строку, завершающуюся значением NULL, которая указывает имя субъекта безопасности (пользователя или группы) в целевом домене. Это доменное имя SAM идентифицирует участника, атрибут sidHistory которого будет обновлен идентификатором безопасности 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
Целевая платформа Windows
Header ntdsapi.h
Библиотека Ntdsapi.lib
DLL Ntdsapi.dll

См. также раздел

DSBind

DSBindWithCred

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