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


Функция EqualPrefixSid (securitybaseapi.h)

Функция EqualPrefixSid проверяет два значения префикса идентификатора безопасности (SID) на равенство. Префикс SID — это весь идентификатор безопасности, за исключением последнего значения подчиненного.

Синтаксис

BOOL EqualPrefixSid(
  [in] PSID pSid1,
  [in] PSID pSid2
);

Параметры

[in] pSid1

Указатель на первую сравниваемую структуру sid . Предполагается, что эта структура является допустимой.

[in] pSid2

Указатель на вторую структуру sid для сравнения. Предполагается, что эта структура является допустимой.

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

Если префиксы sid равны, возвращаемое значение не равно нулю.

Если префиксы sid не равны, возвращаемое значение равно нулю. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Функция EqualPrefixSid позволяет приложению сервера в одном домене проверить попытку пользователя войти в другой домен. Например, если пользователь пытается войти в RemoteDomain с рабочей станции в LocalDomain, сервер для LocalDomain может запросить идентификаторы безопасности для пользователя и групп пользователей из RemoteDomain. Контроллер домена для RemoteDomain отвечает соответствующими идентификаторами безопасности.

Все идентификаторы безопасности для указанного домена имеют одинаковый префикс. Когда сервер получает идентификаторы безопасности пользователя, сервер может вызывать функцию EqualPrefixSid для каждого идентификатора безопасности, сравнивая идентификатор безопасности пользователя или группы с идентификатором безопасности для RemoteDomain. Если какой-либо из префиксов идентификатора безопасности не равен, сервер отклоняет попытку входа.

Рекомендуется изменить идентификатор безопасности для домена, прежде чем сравнивать его с идентификатором безопасности группы или пользователя. Если идентификатор безопасности для RemoteDomain имеет значение S-1–1234–8, то для каждой группы или пользователя для этого домена в качестве префикса используется S-1–1234–8. Чтобы сравнить идентификаторы безопасности с помощью функции EqualPrefixSid , приложение копирует идентификатор безопасности домена и добавляет в копию любое значение вложенного удостоверений (RID), создавая идентификатор безопасности в форме S-1–1234–8–0. Затем приложение использует измененный идентификатор безопасности домена в качестве шаблона, с которым сравниваются идентификаторы безопасности группы и пользователя.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header securitybaseapi.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll

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

Обзор контроль доступа

Базовые функции контроль доступа

CopySid

EqualSid

IsValidSid

SID