IServerSecurity::QueryBlanket 方法 (objidlbase.h)
检索有关调用服务器方法之一的客户端的信息。
语法
HRESULT QueryBlanket(
[out] DWORD *pAuthnSvc,
[out] DWORD *pAuthzSvc,
[out] OLECHAR **pServerPrincName,
[out] DWORD *pAuthnLevel,
[out] DWORD *pImpLevel,
[out] void **pPrivs,
[in, out] DWORD *pCapabilities
);
参数
[out] pAuthnSvc
指向当前身份验证服务的指针。 这是从 身份验证服务常量列表中获取的单个值。 如果调用方指定 NULL,则不会检索当前身份验证服务。
[out] pAuthzSvc
指向接收当前授权服务的变量的指针。 这是 授权常量列表中的单个值。 如果调用方指定 NULL,则不会检索当前授权服务。
[out] pServerPrincName
当前主体名称。 字符串将由被调用方使用 CoTaskMemAlloc 分配,并且必须由调用方使用 CoTaskMemFree 释放。 默认情况下,Schannel 主体名称将采用 msstd 格式。 如果在 pCapabilities 参数中指定了EOAC_MAKE_FULLSIC,将返回 fullsic 窗体。 有关 msstd 和 fullsic 窗体的详细信息,请参阅 主体名称。 如果调用方指定 NULL,则不会检索当前主体名称。
[out] pAuthnLevel
指向接收当前身份验证级别的变量的指针。 这是从 身份验证级别常量列表中获取的单个值。 如果调用方指定 NULL,则不会检索当前身份验证级别。
[out] pImpLevel
此参数必须为 NULL。
[out] pPrivs
客户端应用程序的权限信息。 句柄引用的结构的格式取决于身份验证服务。 应用程序不应写入或释放内存。 该信息仅在当前调用期间有效。 对于 NTLMSSP 和 Kerberos,这是一个 SEC_WINNT_AUTH_IDENTITY 或 SEC_WINNT_AUTH_IDENTITY_EX 结构。 对于 Schannel,这是表示客户端证书 的CERT_CONTEXT 结构。 如果客户端没有证书,则返回 NULL 。 如果调用方指定 NULL,则不会检索当前特权信息。
[in, out] pCapabilities
调用的功能。 若要请求在 Schannel 是身份验证服务时以完整形式返回主体名称,调用方可以在此参数中设置EOAC_MAKE_FULLSIC标志。 如果调用方指定 NULL,则不会检索当前功能。
返回值
此方法可以返回标准返回值E_INVALIDARG、E_OUTOFMEMORY和S_OK。
注解
服务器使用 QueryBlanket 来了解调用其方法之一的客户端。 若要获取指向当前线程上当前调用的 IServerSecurity 的 指针,请调用 CoGetCallContext,并指定IID_IServerSecurity。 在调用期间,此接口指针只能在与调用相同的单元中使用。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | objidlbase.h (包括 ObjIdl.h) |