RpcBindingInqAuthClientExW 函数 (rpcdce.h)

服务器应用程序调用 RpcBindingInqAuthClientEx 函数以获取有关进行远程过程调用的客户端程序的扩展信息。

语法

RPC_STATUS RpcBindingInqAuthClientExW(
  RPC_BINDING_HANDLE ClientBinding,
  RPC_AUTHZ_HANDLE   *Privs,
  RPC_WSTR           *ServerPrincName,
  unsigned long      *AuthnLevel,
  unsigned long      *AuthnSvc,
  unsigned long      *AuthzSvc,
  unsigned long      Flags
);

参数

ClientBinding

发出远程过程调用的客户端的客户端绑定句柄。 此值可以为零。 请参阅“备注”。

Privs

返回指向客户端应用程序的特权信息的句柄的指针,该句柄对 ClientBinding 绑定句柄进行远程过程调用。 对于 ncalrpc 调用,Privs 包含具有客户端主体名称的字符串。

服务器应用程序必须将 Privs 参数强制转换为 AuthnSvc 参数指定的数据类型。 此参数引用的数据是只读的,不应由服务器应用程序修改。 如果服务器想要保留任何返回的数据,服务器必须将数据复制到服务器分配的内存中。

有关 SSP 的详细信息,请参阅 安全支持提供程序(SSP)

ServerPrincName

返回指向服务器应用程序指定的服务器主体名称的指针,该服务器应用程序调用 RpcServerRegisterAuthInfo 函数。 返回的名称及其语法的内容由正在使用的身份验证服务定义。 对于 SCHANNEL SSP,主体名称采用 msstd 格式。 有关 msstd 格式的详细信息,请参阅 主体名称

指定 null 值以防止 RpcBindingInqAuthClientEx 返回 ServerPrincName 参数。 在这种情况下,应用程序不会调用 RpcStringFree 函数。

AuthnLevel

返回一个指针,该指针设置为客户端应用程序请求的身份验证级别,该级别在 ClientBinding 绑定句柄上进行远程过程调用。 有关 RPC 支持的身份验证级别的列表,请参阅 Authentication-Level 常量

指定 null 值以防止 RpcBindingInqAuthClientEx 返回 AuthnLevel 参数。

AuthnSvc

返回一个指针,该指针设置为客户端应用程序请求的身份验证服务,该服务对 ClientBinding 绑定句柄执行远程过程调用。 有关 RPC 支持的身份验证服务的列表,请参阅 Authentication-Service 常量

指定 null 值以防止 RpcBindingInqAuthClientEx 返回 AuthnSvc 参数。

注释AuthnSvc 对应于 QueryContextAttributes 针对 SECPKG_ATTR_DCE_INFO SECPKG_ATTR_REMOTE_CERT_CONTEXT的每个基于证书的 SSP 返回的 SECURITY_STATUS
 

AuthzSvc

返回一个指针,该指针设置为客户端应用程序请求的授权服务,该服务在 绑定 绑定句柄上进行远程过程调用。 有关 RPC 支持的授权服务的列表,请参阅 Authorization-Service 常量

指定 null 值以防止 RpcBindingInqAuthClientEx 返回 AuthzSvc 参数。 RPC_C_AUTHN_WINNT身份验证服务不使用此参数。 返回的值将始终RPC_S_AUTHZ_NONE。

Flags

控制主体名称的格式。 此参数可以设置为以下值。

价值 意义
RPC_C_FULL_CERT_CHAIN
以完整 格式传回主体名称

返回值

价值 意义
RPC_S_OK
调用成功。
RPC_S_INVALID_BINDING
绑定句柄无效。
RPC_S_WRONG_KIND_OF_BINDING
这是操作的错误绑定类型。
RPC_S_BINDING_HAS_NO_AUTH
绑定没有身份验证信息。
 
注释 有关有效错误代码的列表,请参阅 RPC 返回值
 

言论

服务器应用程序调用 RpcBindingInqAuthClientEx 函数,以获取经过身份验证的客户端的主体名称或特权属性,这些客户端进行了远程过程调用。 此外,RpcBindingInqAuthClientEx 返回客户端指定的身份验证服务、身份验证级别和服务器主体名称。 服务器可以将返回的数据用于授权目的。

RPC 运行时库为返回的 ServerPrincName 参数分配内存。 应用程序负责为返回的参数字符串调用 RpcStringFree 函数。

对于同步 RPC 调用,服务器应用程序可以使用零作为 ClientBinding 参数的值。 使用零从当前正在执行的远程过程调用中检索身份验证和授权信息。

注意

rpcdce.h 标头将 RpcBindingInqAuthClientEx 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 rpcdce.h (包括 Rpc.h)
Rpcrt4.lib
DLL Rpcrt4.dll

另请参阅

RpcBindingInqAuthClient

RpcBindingSetAuthInfo

RpcStringFree