coQueryProxyBlanket 函数 (combaseapi.h)
检索客户端用于对指定代理进行调用的身份验证信息。 这是 IClientSecurity::QueryBlanket 的帮助程序函数。
语法
HRESULT CoQueryProxyBlanket(
[in] IUnknown *pProxy,
[out, optional] DWORD *pwAuthnSvc,
[out, optional] DWORD *pAuthzSvc,
[out, optional] LPOLESTR *pServerPrincName,
[out, optional] DWORD *pAuthnLevel,
[out, optional] DWORD *pImpLevel,
[out, optional] RPC_AUTH_IDENTITY_HANDLE *pAuthInfo,
[out, optional] DWORD *pCapabilites
);
参数
[in] pProxy
指示要查询的代理的指针。 此参数不能为 NULL。 有关详细信息,请参见“备注”部分。
[out, optional] pwAuthnSvc
指向接收当前身份验证服务的变量的指针。 这是从 身份验证服务常量获取的单个值。 此参数不能为 NULL。
[out, optional] pAuthzSvc
指向接收当前授权服务的变量的指针。 这是从 授权常量获取的单个值。 如果调用方指定 NULL,则不会检索当前授权服务。
[out, optional] pServerPrincName
当前主体名称。 字符串将由被调用方使用 CoTaskMemAlloc 分配,并且必须由调用方使用 CoTaskMemFree 释放。 pCapabilities 参数中不接受EOAC_MAKE_FULLSIC标志。 有关 msstd 和 fullsic 窗体的详细信息,请参阅 主体名称。 如果调用方指定 NULL,则不会检索当前主体名称。
[out, optional] pAuthnLevel
指向接收当前身份验证级别的变量的指针。 这是从 身份验证级别常量获取的单个值。 如果调用方指定 NULL,则不会检索当前身份验证级别。
[out, optional] pImpLevel
指向接收当前模拟级别的变量的指针。 这是从 模拟级别常量中提取的单个值。 如果调用方指定 NULL,则不会检索当前模拟级别。
[out, optional] pAuthInfo
指向句柄的指针,该句柄接收传递给最后一个 IClientSecurity::SetBlanket 调用 (的客户端标识,或) 默认值。 默认值仅在释放代理之前有效。 如果调用方指定 NULL,则不会检索客户端标识。 句柄引用的结构的格式取决于身份验证服务。 应用程序不应写入或释放内存。 对于 NTLMSSP 和 Kerberos,如果客户端将 pAuthInfo 参数中的结构指定为 CoInitializeSecurity,则返回该值。 对于 Schannel,如果可以从证书管理器检索客户端的证书,则会在此处返回该值。 否则,返回 NULL 。 请参阅 RPC_AUTH_IDENTITY_HANDLE。
[out, optional] pCapabilites
指向接收代理功能的变量的指针。 如果调用方指定 NULL,则不会检索当前功能标志。
返回值
此函数可以返回E_INVALIDARG、E_OUTOFMEMORY和S_OK的标准返回值。
注解
客户端调用 CoQueryProxyBlanket 来检索 COM 将在从指定代理进行的调用中使用的身份验证信息。 此函数封装以下常见调用序列, () 排除的错误处理:
pProxy->QueryInterface(IID_IClientSecurity, (void**)&pcs);
pcs->QueryBlanket(
pProxy, pAuthnSvc, pAuthzSvc, pServerPrincName, pAuthnLevel, pImpLevel, ppAuthInfo, pCapabilities
);
pcs->Release();
此序列在代理上调用 QueryInterface 以获取指向 IClientSecurity 的指针,使用生成的指针调用 IClientSecurity::QueryBlanket ,然后释放该指针。
在 pProxy 中,可以传递任何代理,例如通过调用 CoCreateInstance 或 CoUnmarshalInterface 获取的代理,也可以传递接口指针。 它可以是任何接口。 不能传递指向不是代理的内容的指针。 因此,不能将指针传递给在其接口定义中具有本地关键字 (keyword) 的接口,因为没有为此类接口创建代理。 IUnknown 是此规则的例外。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | combaseapi.h (包括 Objbase.h) |
Library | Ole32.lib |
DLL | Ole32.dll |