AuthzInitializeContextFromSid 函数 (authz.h)
AuthzInitializeContextFromSid 函数从用户安全标识符 (SID) 创建用户模式客户端上下文。 域 SID 从 Active Directory 检索令牌组属性。
语法
AUTHZAPI BOOL AuthzInitializeContextFromSid(
[in] DWORD Flags,
[in] PSID UserSid,
[in, optional] AUTHZ_RESOURCE_MANAGER_HANDLE hAuthzResourceManager,
[in] PLARGE_INTEGER pExpirationTime,
[in] LUID Identifier,
[in, optional] PVOID DynamicGroupArgs,
[out] PAUTHZ_CLIENT_CONTEXT_HANDLE phAuthzClientContext
);
参数
[in] Flags
定义了以下标志。
从 Windows 8 和 Windows Server 2012 开始,在远程上下文句柄上调用此函数时,高 16 位必须为零。
值 | 含义 |
---|---|
|
默认值。
AuthzInitializeContextFromSid 尝试通过执行 S4U 登录来检索用户的令牌组信息。 如果用户的域或调用计算机不支持 S4U 登录, 则 AuthzInitializeContextFromSid 会查询用户的帐户对象以获取组信息。 直接查询帐户时,将省略一些表示登录特征的组,例如网络、交互式、匿名、网络服务或本地服务。 应用程序可以通过实现 AuthzComputeGroupsCallback 函数或调用 AuthzAddSidsToContext 函数来显式添加此类组 SID。 |
|
使 AuthzInitializeContextFromSid 跳过所有组评估。 使用此标志时,返回的上下文仅包含 UserSid 参数指定的 SID 。 指定的 SID 可以是任意或特定于应用程序的 SID。 可以通过实现 AuthzComputeGroupsCallback 函数或调用 AuthzAddSidsToContext 函数,将其他 SID 添加到此上下文中。 |
|
如果 Windows Services For User 无法检索令牌组信息,则会导致 AuthzInitializeContextFromSid 失败。
Windowsxp: 不支持此标志。 |
|
使 AuthzInitializeContextFromSid 检索新上下文的权限。 如果此函数执行 S4U 登录,它将从令牌中检索特权。 否则,该函数将从上下文中的所有 SID 中检索特权。 |
[in] UserSid
将为其创建客户端上下文的用户的 SID。 除非使用 AUTHZ_SKIP_TOKEN_GROUPS 标志,否则该帐户必须是有效的用户或计算机帐户。
[in, optional] hAuthzResourceManager
创建此客户端上下文的资源管理器的句柄。 此句柄存储在客户端上下文结构中。
从 Windows 8 和 Windows Server 2012 开始,资源管理器可以是本地的,也可以是远程的,可以通过调用 AuthzInitializeRemoteResourceManager 函数来获取。
[in] pExpirationTime
令牌的过期日期和时间。 如果未传递任何值,则令牌永不过期。 当前未强制实施过期时间。
[in] Identifier
资源管理器的特定标识符。 当前未使用此参数。
[in, optional] DynamicGroupArgs
指向要传递给计算动态组的回调函数的参数的指针。 如果未将动态参数传递给回调函数,则此参数可以为 NULL 。
从 Windows 8 和 Windows Server 2012 开始,如果资源管理器是远程的,则此参数必须为 NULL。 否则,将设置ERROR_NOT_SUPPORTED。
[out] phAuthzClientContext
指向 AuthzInitializeContextFromSid 函数创建的客户端上下文句柄的指针。 使用完句柄后,通过调用 AuthzFreeContext 函数释放它。
返回值
如果函数成功,则函数返回非零值。
如果函数失败,则返回零。 要获得更多的错误信息,请调用 GetLastError。
注解
如果可能,请调用 AuthzInitializeContextFromToken 函数,而不是 AuthzInitializeContextFromSid。 AuthzInitializeContextFromSid 尝试检索客户端实际登录的登录令牌中可用的信息。 实际的登录令牌提供更多信息,例如登录类型和登录属性,并反映用于登录的身份验证包的行为。 AuthzInitializeContextFromToken 创建的客户端上下文使用登录令牌,生成的客户端上下文比 AuthzInitializeContextFromSid 创建的客户端上下文更完整、更准确。
此函数仅解析有效的用户 SID。
Windowsxp: 此函数解析有效用户和组 SID (的组成员身份,除非) 使用 AUTHZ_SKIP_TOKEN_GROUPS 标志。 对解析组 SID 成员身份的支持可能在后续版本中更改或不可用。
此函数调用 AuthzComputeGroupsCallback 回调函数,将 SID 添加到新创建的上下文。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | authz.h |
Library | Authz.lib |
DLL | Authz.dll |
可再发行组件 | Windows XP 上的 Windows Server 2003 管理工具包 |