AuthzCachedAccessCheck 函数 (authz.h)

AuthzCachedAccessCheck 函数根据缓存句柄执行快速访问检查,其中包含来自先前 AuthzAccessCheck 调用的静态授予位。

语法

AUTHZAPI BOOL AuthzCachedAccessCheck(
  [in]  DWORD                             Flags,
  [in]  AUTHZ_ACCESS_CHECK_RESULTS_HANDLE hAccessCheckResults,
  [in]  PAUTHZ_ACCESS_REQUEST             pRequest,
  [in]  AUTHZ_AUDIT_EVENT_HANDLE          hAuditEvent,
  [out] PAUTHZ_ACCESS_REPLY               pReply
);

参数

[in] Flags

保留供将来使用。

[in] hAccessCheckResults

缓存访问的句柄检查结果。

[in] pRequest

(指定所需 访问掩码、主体自 SID 和对象类型列表结构的访问请求句柄(如果有任何) )。

[in] hAuditEvent

包含特定于对象的审核信息的结构。 如果此参数的值不为 null,则会自动请求审核。 静态审核信息从资源管理器结构中读取。

[out] pReply

指向AUTHZ_ACCESS_REPLY句柄的指针,该句柄以 GrantedAccessMask/ErrorValue 对数组的形式返回访问检查的结果。 返回的对数由调用方在 AUTHZ_ACCESS_REPLY 结构的 ResultListLength 成员中提供。

返回值

如果该函数成功,则返回 TRUE

如果函数失败,则返回 FALSE。 要获得更多的错误信息,请调用 GetLastError。

下表显示了返回的数组元素的 Error 成员的预期值。

返回代码 说明
ERROR_SUCCESS
授予所有访问位(不包括MAXIMUM_ALLOWED),pReply 参数的 GrantedAccessMask 成员不为零。
ERROR_PRIVILEGE_NOT_HELD
pRequest 参数的 DesiredAccess 成员包括 ACCESS_SYSTEM_SECURITY,并且客户端没有 SeSecurityPrivilege 特权。
ERROR_ACCESS_DENIED
以下一项或多项为 true:
  • 未授予请求的位。
  • MaximumAllowed 位已打开,授予的访问权限为零。
  • pRequest 参数的 DesiredAccess 成员为零。

注解

客户端上下文指针存储在 AuthzHandle 参数中。 客户端上下文的结构必须与创建 AuthzHandle 时的结构完全相同。 此限制适用于以下字段:

  • SID
  • RestrictedSids
  • 权限
创建句柄时,指向主要 安全描述符 和可选安全描述符数组的指针存储在 AuthzHandle 中。 这些指针必须仍然有效。

AuthzCachedAccessCheck 函数会维护缓存,因为评估对象上的中央访问策略 (CAP) ,除非 CAP 被忽略,例如在使用AUTHZ_RM_FLAG_NO_CENTRAL_ACCESS_POLICIES标志时。 客户端可以调用 AuthzFreeCentralAccessPolicyCache 函数来释放此缓存。 请注意,这需要后续调用 AuthzCachedAccessCheck 以在必要时重新生成缓存。

有关详细信息,请参阅 AccessCheck 的工作原理集中授权策略 概述。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 authz.h
Library Authz.lib
DLL Authz.dll
可再发行组件 Windows XP 上的 Windows Server 2003 管理工具包

另请参阅

AUTHZ_ACCESS_REPLY

AuthzAccessCheck

AuthzFreeCentralAccessPolicyCache

AuthzInitializeResourceManager

基本访问控制函数

集中式授权策略

AccessCheck 的工作原理