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


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

Функция PrivilegeCheck определяет, включен ли указанный набор привилегий в маркере доступа. Функция PrivilegeCheck обычно вызывается серверным приложением для проверка привилегий маркера доступа клиента.

Синтаксис

BOOL PrivilegeCheck(
  [in]      HANDLE         ClientToken,
  [in, out] PPRIVILEGE_SET RequiredPrivileges,
  [out]     LPBOOL         pfResult
);

Параметры

[in] ClientToken

Дескриптор маркера доступа, представляющего клиентский процесс. Этот дескриптор должен быть получен путем открытия токена потока, олицетворяющего клиента. Маркер должен быть открыт для доступа TOKEN_QUERY.

[in, out] RequiredPrivileges

Указатель на структуру PRIVILEGE_SET . Элемент Privilege этой структуры является массивом LUID_AND_ATTRIBUTES структур. Перед вызовом PrivilegeCheck используйте массив Привилегий, чтобы указать набор привилегий для проверка. Задайте элементу Control значение PRIVILEGE_SET_ALL_NECESSARY, если все привилегии должны быть включены; или задайте для него значение 0, если достаточно включить любой из привилегий.

Когда значение PrivilegeCheck возвращается, элементу Attributes каждой структуры LUID_AND_ATTRIBUTES присваивается значение SE_PRIVILEGE_USED_FOR_ACCESS, если включена соответствующая привилегия.

[out] pfResult

Указатель на значение, которое задается функцией, чтобы указать, включены ли в маркере доступа какие-либо или все указанные привилегии. Если элемент Control структуры PRIVILEGE_SET указывает PRIVILEGE_SET_ALL_NECESSARY, это значение имеет значение TRUE , только если включены все привилегии; В противном случае это значение равно TRUE , если включены какие-либо привилегии.

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

Если функция выполняется успешно, возвращается ненулевое значение.

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

Комментарии

Маркер доступа содержит список привилегий, имеющихся у учетной записи, связанной с маркером. Эти привилегии можно включить или отключить; Большинство из них отключены по умолчанию. Функция PrivilegeCheck проверяет только наличие включенных привилегий. Чтобы получить список всех включенных и отключенных привилегий, удерживаемых маркером доступа, вызовите функцию GetTokenInformation . Чтобы включить или отключить набор привилегий в маркере доступа, вызовите функцию AdjustTokenPrivileges .

Требования

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

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

AdjustTokenPrivileges

Функции контроль доступа клиента или сервера

Общие сведения о клиенте и сервере контроль доступа

GetTokenInformation

LUID_AND_ATTRIBUTES

LookupPrivilegeValue

ObjectPrivilegeAuditAlarm

PRIVILEGE_SET

PrivilegedServiceAuditAlarm