rpcServerRegisterAuthInfo 函数 (rpcdce.h)

RpcServerRegisterAuthInfo 函数向 RPC 运行时库注册身份验证信息。

语法

RPC_STATUS RpcServerRegisterAuthInfo(
  RPC_CSTR                  ServerPrincName,
  unsigned long             AuthnSvc,
  RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
  void                      *Arg
);

参数

ServerPrincName

指向在使用 AuthnSvc 参数指定的服务对远程过程调用进行身份验证时要用于服务器的主体名称的指针。 名称的内容及其语法由正在使用的身份验证服务定义。 有关详细信息,请参阅 主体名称

AuthnSvc

服务器收到远程过程调用的请求时使用的身份验证服务。

GetKeyFn

服务器应用程序提供的返回加密密钥的例程的地址。 请参阅 RPC_AUTH_KEY_RETRIEVAL_FN

指定 NULL 参数值以使用加密密钥获取的默认方法。 在这种情况下,身份验证服务指定默认行为。 使用RPC_C_AUTHN_WINNT身份验证服务时,将此参数设置为 NULL

身份验证服务 GetKeyFn Arg 运行时行为
RPC_C_AUTHN_DPA 忽略 忽略 不支持
RPC_C_AUTHN_GSS_KERBEROS 忽略 忽略 不支持
RPC_C_AUTHN_GSS_NEGOTIATE 忽略 忽略 不支持
RPC_C_AUTHN_GSS_SCHANNEL 忽略 忽略 不支持
RPC_C_AUTHN_MQ 忽略 忽略 不支持
RPC_C_AUTHN_MSN 忽略 忽略 不支持
RPC_C_AUTHN_WINNT 忽略 忽略 不支持
RPC_C_AUTHN_DCE_PRIVATE NULL null 使用从指定密钥表获取加密密钥的默认方法;指定的参数将传递给默认的获取函数。
RPC_C_AUTHN_DCE_PRIVATE null NULL 使用指定的加密密钥获取函数从默认密钥表获取密钥。
RPC_C_AUTHN_DCE_PRIVATE null null 使用指定的加密密钥获取函数从指定的密钥表获取密钥;指定的参数传递给购置函数。
RPC_C_AUTHN_DEC_PUBLIC 忽略 忽略 保留供将来使用。
 
 

RPC 运行时库将 RpcServerRegisterAuthInfo 中的 ServerPrincName 参数值作为 ServerPrincName 参数值传递给 GetKeyFn 获取函数。 RPC 运行时库自动为 keyVer) 参数 (密钥版本提供值。 对于 KeyVer 参数值为零,购置函数必须返回最新的可用密钥。 检索函数返回 Key 参数中的身份验证密钥。

如果从 RpcServerRegisterAuthInfo 调用的购置函数返回RPC_S_OK以外的状态,则此函数将失败,并将错误代码返回给服务器应用程序。 如果在对客户端的远程过程调用请求进行身份验证时 RPC 运行时库调用的购置函数返回RPC_S_OK以外的状态,则请求将失败,RPC 运行时库会向客户端应用程序返回错误代码。

Arg

指向要传递给 GetKeyFn 例程的参数(如果指定)的指针。 如果身份验证服务设置为 SCHANNEL,此参数还可用于传递指向 SCHANNEL_CRED 结构的指针,以指定显式凭据。

如果 Arg 参数设置为 NULL,则此函数将使用默认证书或凭据(如果已在目录服务中设置)。

返回值

含义
RPC_S_OK
调用成功。
RPC_S_UNKNOWN_AUTHN_SERVICE
身份验证服务未知。
 
注意 有关有效错误代码的列表,请参阅 RPC 返回值
 

注解

服务器应用程序调用 RpcServerRegisterAuthInfo 来注册用于对远程过程调用进行身份验证的身份验证服务。 服务器针对服务器要注册的每个身份验证服务调用此例程一次。 如果服务器为给定的身份验证服务多次调用此函数,则结果未定义。

客户端应用程序使用 RpcBindingSetAuthInfoRpcServerRegisterAuthInfo) 指定 (的身份验证服务必须是服务器应用程序指定的身份验证服务之一。 否则,客户端的远程过程调用将失败,并返回RPC_S_UNKNOWN_AUTHN_SERVICE状态代码。

要求

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

另请参阅

RpcBindingSetAuthInfo