[英]msmq authentication slows encryption
当发送加密的msmq消息时,似乎认证速度降低了(从2500 msg / sec降低到150 msgs / sec)。
对于System.Messaging.MessageQueue和具有msmqIntegration绑定的Wcf客户端,似乎都是这种情况。
我的要求是加密传输,我可以不进行身份验证。 我希望使用WCF客户端,因为可以从app.config更改设置。
msmqIntegrationBinding是否可以在没有身份验证的情况下进行传输加密?
<msmqIntegrationBinding>
<binding name="VisionAirMessagingBinding"
timeToLive="12:00:00"
maxReceivedMessageSize="4100000"
receiveErrorHandling="Move"
retryCycleDelay="00:30:00"
useMsmqTracing="false"
serializationFormat="Stream">
<security mode="Transport">
<transport msmqAuthenticationMode="WindowsDomain"
msmqEncryptionAlgorithm="RC4Stream"
msmqProtectionLevel="EncryptAndSign"
msmqSecureHashAlgorithm="Sha1"/>
</security>
</binding>
我发现使用系统时,通过注释掉以下内容使身份验证减慢了速度。
q1.Send(new Message
{
BodyStream = new MemoryStream(
Encoding.ASCII.GetBytes("ABCDEFGHIJKLMNOPQRSTUVXYZ")),
Label = i.ToString(),
//UseAuthentication = true,
UseEncryption = true
}, msmqTx);
如果我打开身份验证,发送将再次变慢!
感谢您的帮助!
WindowsDomain
身份验证表示Kerberos身份验证。 它必须是多代理协议(使用发送4个或更多不同消息之类的协议)。 由于您使用的是.Send()
方法。 如果您不引发一些异步性/并发性,这将限制您的速率(由于多个延迟路径)。
您可能会发现切换到简单的Certificate
身份验证就足够了。
结果是服务器将在没有用户凭据的情况下执行消息,但将进行身份验证(您知道谁发送了消息,但无法提升该用户的权限)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.