IServerSecurity::QueryBlanket 方法 (objidl.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,则将返回完整形式。 有关 msstd 和 fullsic 表单的详细信息,请参阅 主体名称。 如果调用方指定 NULL,则不会检索当前主体名称。

[out] pAuthnLevel

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

[out] pImpLevel

此参数必须为 NULL

[out] pPrivs

客户端应用程序的权限信息。 句柄所引用的结构的格式取决于身份验证服务。 应用程序不应写入或释放内存。 该信息仅在当前调用期间有效。 对于 NTLMSSP 和 Kerberos,这是一个 SEC_WINNT_AUTH_IDENTITYSEC_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
标头 objidl.h (包括 ObjIdl.h)

另请参阅

CoQueryClientBlanket

CoQueryProxyBlanket

IServerSecurity