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


Функция RtlEqualPrefixSid (ntifs.h)

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

Синтаксис

NTSYSAPI BOOLEAN RtlEqualPrefixSid(
  [in] PSID Sid1,
  [in] PSID Sid2
);

Параметры

[in] Sid1

Указатель на первую сравниваемую структуру sid. Должен указывать на допустимый идентификатор безопасности.

[in] Sid2

Указатель на вторую структуру sid для сравнения. Должен указывать на допустимый идентификатор безопасности.

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

RtlEqualPrefixSid возвращает значение TRUE , если префиксы идентификатора безопасности равны, в противном случае — FALSE . Если недопустимая структура sid, возвращаемое значение не определено.

Комментарии

RtlEqualPrefixSid позволяет серверу в одном домене проверить попытку пользователя войти в другой домен. Например, если пользователь пытается войти в RemoteDomain с рабочей станции в LocalDomain, сервер для LocalDomain может запросить идентификаторы БЕЗОПАСНОСТИ для пользователя и групп пользователей из RemoteDomain. Контроллер домена для RemoteDomain отвечает соответствующими идентификаторами безопасности.

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

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

Дополнительные сведения о безопасности и управлении доступом см. в статье Модель безопасности Windows для разработчиков драйверов и в документации по этим темам в Windows SDK.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h)
Библиотека Ntdll.lib
DLL Ntdll.dll
IRQL <= APC_LEVEL

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

RtlCopySid

RtlequalSid

RtlValidSid

SID