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 位必须为零。
值 | 含义 |
---|---|
|
如果 phAccessCheckResults 不为 NULL,则将安全描述符的深层副本复制到 phAccessCheckResults 引用的句柄。 |
|
不执行安全描述符的深层复制。 调用应用程序必须在 phAccessCheckResults 中传递AUTHZ_ACCESS_CHECK_RESULTS_HANDLE句柄的地址。 AuthzAccessCheck 函数将此句柄设置为在后续调用 AuthzCachedAccessCheck 期间必须保持有效的安全描述符。 |
[in] hAuthzClientContext
表示客户端的 结构的句柄。
从 Windows 8 和 Windows Server 2012 开始,客户端上下文可以是本地上下文,也可以是远程上下文。
[in] pRequest
指向 AUTHZ_ACCESS_REQUEST 结构的指针,该结构指定所需的访问掩码、主体自我 安全标识符 (SID) ,以及对象类型列表结构(如果存在)。
[in, optional] hAuditEvent
包含特定于对象的审核信息的 结构。 如果此参数的值不为 null,则会自动请求审核。 静态审核信息从资源管理器结构中读取。
从 Windows 8 和 Windows Server 2012 开始,将此函数与远程上下文句柄一起使用时,参数的值必须为 NULL。
[in] pSecurityDescriptor
指向要用于访问检查 的SECURITY_DESCRIPTOR 结构的指针。 对象的所有者 SID 是从此安全描述符中选取的。 此安全描述符中 DACL) (NULL 自由访问控制列表 表示整个对象的 NULL DACL。 请确保安全描述符包含 OWNER 和 DACL 信息,否则将生成错误代码 87 或“参数无效”消息。
[in, optional] OptionalSecurityDescriptorArray
SECURITY_DESCRIPTOR 结构的数组。 这些安全描述符中) 的 ACL (NULL 访问控制列表被视为空 ACL。 整个对象的 ACL 是所有 ACL 的逻辑串联。
[in, optional] OptionalSecurityDescriptorCount
不包括主要安全描述符的安全描述符的数目。
[in, out] pReply
指向包含访问检查结果的AUTHZ_ACCESS_REPLY结构的指针。 在调用 AuthzAccessCheck 函数之前,应用程序必须为 pReply 引用的 AUTHZ_ACCESS_REPLY 结构的 GrantedAccessMask 和 SaclEvaluationResults 成员分配内存。
[out, optional] phAccessCheckResults
一个指针,用于返回访问检查缓存结果的句柄。 如果此参数值不为 null,则将缓存此访问检查调用的结果。 这会导致MAXIMUM_ALLOWED 检查。
从 Windows 8 和 Windows Server 2012 开始,将此函数与远程上下文句柄一起使用时,参数的值必须为 NULL。
返回值
如果函数成功,则函数返回 TRUE。
如果函数失败,则返回 FALSE。 要获得更多的错误信息,请调用 GetLastError。
注解
如果 pSecurityDescriptor 参数指向的SECURITY_DESCRIPTOR结构的 DACL 包含 (ACE) 的回调访问控制项,则将调用 AuthzAccessCheckCallback 回调函数。
如果在条件表达式中引用安全属性变量,则必须在客户端上下文中存在,否则引用它们的条件表达式术语的计算结果为未知。 有关详细信息,请参阅 条件 ACE 的安全描述符定义语言 主题。
有关详细信息,请参阅 AccessCheck 的工作原理 和 集中授权策略 概述。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | authz.h |
Library | Authz.lib |
DLL | Authz.dll |
可再发行组件 | Windows XP 上的 Windows Server 2003 管理工具包 |