CoQueryClientBlanket 函数 (combaseapi.h)

由服务器调用,以查明调用在当前线程上执行的方法的客户端。 这是 IServerSecurity::QueryBlanket 的帮助程序函数。

语法

HRESULT CoQueryClientBlanket(
  [out, optional]     DWORD            *pAuthnSvc,
  [out, optional]     DWORD            *pAuthzSvc,
  [out, optional]     LPOLESTR         *pServerPrincName,
  [out, optional]     DWORD            *pAuthnLevel,
  [out, optional]     DWORD            *pImpLevel,
  [out, optional]     RPC_AUTHZ_HANDLE *pPrivs,
  [in, out, optional] DWORD            *pCapabilities
);

参数

[out, optional] pAuthnSvc

指向接收当前身份验证服务的变量的指针。 这是从 身份验证服务常量获取的单个值。 如果调用方指定 NULL,则不会检索当前身份验证服务。

[out, optional] pAuthzSvc

指向接收当前授权服务的变量的指针。 这是从 授权常量获取的单个值。 如果调用方指定 NULL,则不会检索当前授权服务。

[out, optional] pServerPrincName

当前主体名称。 字符串将由被调用方使用 CoTaskMemAlloc 分配,并且必须由调用方使用 CoTaskMemFree 释放。 默认情况下,Schannel 主体名称将采用 msstd 格式。 如果在 pCapabilities 参数中指定了EOAC_MAKE_FULLSIC,则将返回完整形式。 有关 msstd 和 fullsic 窗体的详细信息,请参阅 主体名称。 如果调用方指定 NULL,则不会检索当前主体名称。

[out, optional] pAuthnLevel

指向接收当前身份验证级别的变量的指针。 这是从 身份验证级别常量获取的单个值。 如果调用方指定 NULL,则不会检索当前身份验证级别。

[out, optional] pImpLevel

此参数必须为 NULL

[out, optional] pPrivs

指向接收客户端应用程序特权信息的句柄的指针。 句柄所引用的结构的格式取决于身份验证服务。 应用程序不应写入或释放内存。 该信息仅在当前调用期间有效。 对于 NTLMSSP 和 Kerberos,这是一个标识客户端主体的字符串。 对于 Schannel,这是表示客户端证书 的CERT_CONTEXT 结构。 如果客户端没有证书,则返回 NULL 。 如果调用方指定 NULL,则不会检索当前特权信息。 请参阅 RPC_AUTHZ_HANDLE

[in, out, optional] pCapabilities

返回指示调用功能的标志的指针。 若要请求在 Schannel 是身份验证服务时以完整形式返回主体名称,调用方可以在此参数中设置EOAC_MAKE_FULLSIC标志。 如果调用方指定 NULL,则不会检索当前功能。

返回值

此函数可以返回E_INVALIDARG、E_OUTOFMEMORY和S_OK的标准返回值。

注解

服务器调用 CoQueryClientBlanket 以获取有关调用当前线程上执行的方法的客户端的安全信息。 此函数封装以下常见调用序列, (排除的错误处理) :

    CoGetCallContext(IID_IServerSecurity, (void**)&pss);
    pss->QueryBlanket(pAuthnSvc, pAuthzSvc, pServerPrincName, 
                pAuthnLevel, pImpLevel, pPrivs, pCapabilities);
    pss->Release();

此序列调用 CoGetCallContext 以获取指向 IServerSecurity 的 指针,并使用生成的指针调用 IServerSecurity::QueryBlanket ,然后释放指针。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 combaseapi.h (包括 Objbase.h)
Library Ole32.lib
DLL Ole32.dll

另请参阅

CoGetCallContext

CoQueryProxyBlanket

IServerSecurity::QueryBlanket

COM 中的安全性