[英]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.