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,则此函数将使用默认证书或凭据(如果已在目录服务中设置)。
返回值
值 | 含义 |
---|---|
|
调用成功。 |
|
身份验证服务未知。 |
注解
服务器应用程序调用 RpcServerRegisterAuthInfo 来注册用于对远程过程调用进行身份验证的身份验证服务。 服务器针对服务器要注册的每个身份验证服务调用此例程一次。 如果服务器为给定的身份验证服务多次调用此函数,则结果未定义。
客户端应用程序使用 RpcBindingSetAuthInfo 或 RpcServerRegisterAuthInfo) 指定 (的身份验证服务必须是服务器应用程序指定的身份验证服务之一。 否则,客户端的远程过程调用将失败,并返回RPC_S_UNKNOWN_AUTHN_SERVICE状态代码。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | rpcdce.h (包括 Rpc.h) |
Library | Rpcrt4.lib |
DLL | Rpcrt4.dll |