MSMQ 安全服务

同步 RPC 消息可以使用 RPC 运行时提供的任何安全功能。 有关更多详细信息,请参阅 安全性

异步 [ message] 调用无法使用 RPC 安全性,因为客户端和服务器之间没有握手。 事实上,服务器在调用时甚至可能未运行。 若要访问消息队列服务 (MSMQ) 提供的安全服务,客户端应用程序应调用 RpcBindingSetAuthInfo 来控制其对服务器的调用的身份验证和隐私级别。

服务器应用程序可以从远程过程调用中调用 RpcBindingInqAuthClient ,以确定该调用的安全级别。 下表显示了 RPC 安全常量与 MSMQ 安全性之间的映射。

RPC 安全级别 说明
RPC_AUTHN_LEVEL_NONE 调用未经过身份验证或加密。
RPC_AUTHN_LEVEL_PKT_INTEGRITY 调用使用 MSMQ 安全性进行身份验证。
RPC_AUTHN_LEVEL_PKT_PRIVACY 调用在客户端和服务器队列之间传输时经过身份验证和加密。

 

服务器还可以通过调用 RpcServerUseProtseqEpEx 并在RPC_POLICY结构中设置RPC_C_MQ_AUTHN_LEVEL_NONE、RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY和RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY标志来强制 调用 身份验证和加密。