Функция AuthzAccessCheck (authz.h)

Функция AuthzAccessCheck определяет, какие биты доступа могут быть предоставлены клиенту для заданного набора дескрипторов безопасности. Структура AUTHZ_ACCESS_REPLY возвращает массив предоставленных масок доступа и состояние ошибки. При необходимости можно кэшировать маски доступа, которые всегда будут предоставляться, и возвращается дескриптор кэшированных значений.

Синтаксис

AUTHZAPI BOOL AuthzAccessCheck(
  [in]            DWORD                              Flags,
  [in]            AUTHZ_CLIENT_CONTEXT_HANDLE        hAuthzClientContext,
  [in]            PAUTHZ_ACCESS_REQUEST              pRequest,
  [in, optional]  AUTHZ_AUDIT_EVENT_HANDLE           hAuditEvent,
  [in]            PSECURITY_DESCRIPTOR               pSecurityDescriptor,
  [in, optional]  PSECURITY_DESCRIPTOR               *OptionalSecurityDescriptorArray,
  [in, optional]  DWORD                              OptionalSecurityDescriptorCount,
  [in, out]       PAUTHZ_ACCESS_REPLY                pReply,
  [out, optional] PAUTHZ_ACCESS_CHECK_RESULTS_HANDLE phAccessCheckResults
);

Параметры

[in] Flags

Значение DWORD , указывающее способ копирования дескриптора безопасности. Этот параметр может принимать одно из указанных ниже значений.

Начиная с Windows 8 и Windows Server 2012, при вызове этой функции для удаленного дескриптора контекста верхние 16 бит должны быть равны нулю.

Значение Значение
0
Если phAccessCheckResults не имеет значение NULL, то глубокая копия дескриптора безопасности копируется в дескриптор, на который ссылается phAccessCheckResults.
AUTHZ_ACCESS_CHECK_NO_DEEP_COPY_SD
1
Глубокая копия дескриптора безопасности не выполняется. Вызывающее приложение должно передавать адрес дескриптора AUTHZ_ACCESS_CHECK_RESULTS_HANDLE в phAccessCheckResults. Функция AuthzAccessCheck задает дескриптор безопасности, который должен оставаться действительным во время последующих вызовов AuthzCachedAccessCheck.

[in] hAuthzClientContext

Дескриптор структуры, представляющей клиент.

Начиная с Windows 8 и Windows Server 2012 контекст клиента может быть локальным или удаленным.

[in] pRequest

Указатель на структуру AUTHZ_ACCESS_REQUEST , которая указывает требуемую маску доступа, основной идентификатор самостоятельной безопасности (SID) и структуру списка типов объектов, если она существует.

[in, optional] hAuditEvent

Структура, содержащая сведения об аудите для конкретных объектов. Если значение этого параметра не равно NULL, аудит запрашивается автоматически. Статические сведения аудита считываются из структуры Resource Manager.

Начиная с Windows 8 и Windows Server 2012, при использовании этой функции с удаленным дескриптором контекста значение параметра должно иметь значение NULL.

[in] pSecurityDescriptor

Указатель на структуру SECURITY_DESCRIPTOR , используемую для проверок доступа. Идентификатор безопасности владельца для объекта выбирается из этого дескриптора безопасности. Список управления доступом (DACL) null в этом дескрипторе безопасности представляет список DACL NULL для всего объекта. Убедитесь, что дескриптор безопасности содержит сведения о владельцах и DACL, или будет создан код ошибки 87 или сообщение "недопустимый параметр".

Важно, чтобы списки DACCL null разрешали все типы доступа для всех пользователей; Поэтому не используйте списки DACCL NULL. Сведения о создании DACL см. в разделе Создание daCL.
 
Список системного управления доступом (SACL) null в этом дескрипторе безопасности обрабатывается так же, как пустой список управления доступом (SACL).

[in, optional] OptionalSecurityDescriptorArray

Массив структур SECURITY_DESCRIPTOR . Списки управления доступом (ACL) null в этих дескрипторах безопасности обрабатываются как пустые списки управления доступом. ACL для всего объекта является логическим объединением всех списков управления доступом.

[in, optional] OptionalSecurityDescriptorCount

Число дескрипторов безопасности, не включая основной дескриптор безопасности.

[in, out] pReply

Указатель на структуру AUTHZ_ACCESS_REPLY, содержащую результаты проверка доступа. Перед вызовом функции AuthzAccessCheck приложение должно выделить память для элементов GrantedAccessMask и SaclEvaluationResultsструктуры AUTHZ_ACCESS_REPLY , на которую ссылается pReply.

[out, optional] phAccessCheckResults

Указатель, возвращающий дескриптор кэшированных результатов проверка доступа. Если значение этого параметра не равно NULL, результаты этого вызова проверка доступа будут кэшироваться. Это приводит к MAXIMUM_ALLOWED проверка.

Начиная с Windows 8 и Windows Server 2012, при использовании этой функции с удаленным дескриптором контекста значение параметра должно иметь значение NULL.

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

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

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

Комментарии

Функция обратного вызова AuthzAccessCheckCallback будет вызвана , если DACL структуры SECURITY_DESCRIPTOR , на которую указывает параметр pSecurityDescriptor , содержит запись управления доступом обратного вызова (ACE).

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

Дополнительные сведения см. в разделах Принципы работы AccessCheck и Общие сведения о централизованной политике авторизации .

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header authz.h
Библиотека Authz.lib
DLL Authz.dll
Распространяемые компоненты Пакет средств администрирования Windows Server 2003 в Windows XP

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

AUTHZ_ACCESS_REPLY

AUTHZ_ACCESS_REQUEST

AuthzCachedAccessCheck

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

Централизованная политика авторизации

Как работает AccessCheck

SECURITY_DESCRIPTOR

Язык определения дескриптора безопасности для условных ACE