rpcBindingSetAuthInfo 函数 (rpcdce.h)

RpcBindingSetAuthInfo 函数设置绑定句柄的身份验证和授权信息。

语法

RPC_STATUS RpcBindingSetAuthInfo(
  RPC_BINDING_HANDLE       Binding,
  RPC_CSTR                 ServerPrincName,
  unsigned long            AuthnLevel,
  unsigned long            AuthnSvc,
  RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  unsigned long            AuthzSvc
);

parameters

Binding

要向其应用身份验证和授权信息的服务器绑定句柄。

ServerPrincName

指向 由 Binding 引用的服务器的预期主体名称的指针。 名称的内容及其语法由正在使用的身份验证服务定义。

注意 有关 SSP 的允许目标名称集,请参阅 InitializeSecurityContext 文档中的注释。
 

AuthnLevel

要对使用 绑定进行的远程过程调用执行的身份验证级别。 有关 RPC 支持的身份验证级别的列表,请参阅 身份验证级别常量列表。

AuthnSvc

要使用的身份验证服务。 请参阅“注意”。

指定RPC_C_AUTHN_NONE以关闭使用 绑定进行的远程过程调用的身份验证。

如果指定了RPC_C_AUTHN_DEFAULT,则 RPC 运行时库对使用 绑定进行的远程过程调用使用 RPC_C_AUTHN_WINNT 身份验证服务。

AuthIdentity

包含适用于所选身份验证和授权服务的客户端身份验证和授权凭据的结构的句柄。使用 RPC_C_AUTHN_WINNT 身份验证服务 时,AuthIdentity 应是指向 Rpcdce.h) 中定义的 SEC_WINNT_AUTH_IDENTITY 结构的指针 (。 Kerberos 和 Negotiate 身份验证服务也使用 SEC_WINNT_AUTH_IDENTITY 结构。

选择RPC_C_AUTHN_GSS_SCHANNEL身份验证服务时, AuthIdentity 参数应是指向 Schannel.h) 中定义的 (SCHANNEL_CRED 结构的指针。 指定一个 null 值以使用当前地址空间的安全登录上下文。 RPC_C_NO_CREDENTIALS传递值以使用匿名登录上下文。

注意 选择RPC_C_AUTHN_GSS_SCHANNEL身份验证服务时, AuthIdentity 参数也可能是指向 SCH_CRED 结构的指针。 但是,在 Windows XP 和更高版本的 Windows 中,唯一可接受的结构作为RPC_C_AUTHN_GSS_SCHANNEL身份验证服务的 AuthIdentity 参数传递是 SCHANNEL_CRED 结构。
 

AuthzSvc

由服务器为感兴趣的接口实现的授权服务。 请参阅“注意”。

与任何应用程序数据一样,授权数据的有效性和可信度取决于所选的身份验证服务和身份验证级别。 使用 RPC_C_AUTHN_WINNT 身份验证服务时,将忽略此参数。

注意 有关详细信息,请参阅 Authentication-Service 常量
 

返回值

含义
RPC_S_OK
调用成功。
RPC_S_INVALID_BINDING
绑定句柄无效。
RPC_S_WRONG_KIND_OF_BINDING
这是操作的错误绑定类型。
RPC_S_UNKNOWN_AUTHN_SERVICE
未知的身份验证服务。
 
注意 有关有效错误代码的列表,请参阅 RPC 返回值
 

注解

客户端应用程序调用 RpcBindingSetAuthInfo 函数来设置服务器绑定句柄,以便进行经过身份验证的远程过程调用。 客户端不需要调用此函数。

除非客户端调用 RpcBindingSetAuthInfo,否则不会对 绑定 绑定句柄执行任何远程过程调用。 服务器可以从远程过程调用内部调用 RpcBindingInqAuthClient ,以确定该调用是否已经过身份验证。

RpcBindingSetAuthInfo 函数采用凭据快照。 因此,可以在绑定句柄之前释放专用于 AuthIdentity 参数的内存。

由于不同版本的 Microsoft RPC 要求不同,Microsoft 建议应用程序在绑定句柄存在时保留 指向 AuthIdentity 参数的指针。 这样做会增加应用程序的可移植性。

带 SP1 的 Windows Server 2003 和 SP2 的 Windows XP: 对于 Windows XP SP2 和 Windows Server 2003 SP1,无需在绑定句柄的生命周期内维护 指向 AuthIdentity 参数的指针。 仅当后续调用 RpcBindingInqAuthInfoRpcBindingInqAuthInfoEx 时,必须维护此指针。

注意 在同一句柄上进行 RPC 调用时,不得对绑定句柄调用 RpcBindingSetAuthInfo 函数。 这样做会产生未定义的结果。
 

要求

   
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 rpcdce.h (包括 Rpc.h)
Library Rpcrt4.lib
DLL Rpcrt4.dll

请参阅

MSMQ 安全服务

RpcBindingInqAuthInfo

RpcBindingSetOption

RpcServerRegisterAuthInfo