簡體   English   中英

msmq身份驗證減慢了加密速度

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM