2010-07-23 38 views
2

我有這樣的結合:如何在單個請求中傳遞WCF憑據?

<customBinding> 
    <binding name="b1"> 
     <security authenticationMode="UserNameForSslNegotiated"> 
      <secureConversationBootstrap /> 
     </security> 
     <binaryMessageEncoding/> 
     <httpTransport/> 
    </binding> 
</customBinding> 

當我使用一個嗅探器來查看來電,我發現這確每次通話3個來回。

通過查看我看到

  • 消息1是<t:RequestSecurityToken …>類型的
  • 消息2是類型的請求<t:RequestSecurityTokenResponse…>
  • 消息3是真正的請求

是否有真正的消息傳遞證書的方式?

更新2010年8月23日:我還沒有找到解決這個問題的方法。

+0

如果你不能確定是什麼所有這些往返是通過查看網絡嗅探器的輸出,那麼我們怎樣才能確定它們是什麼,以及不查看嗅探器輸出? – 2010-07-23 19:25:33

+1

那麼,我有一個與wsHttpBinding相同的問題。使用wsHttpBinding時,默認情況下,EstablishSecurityContext屬性設置爲True,並且每個請求導致3次往返。將establishSecurityContext設置爲False可以解決此問題。這一次與customBinding,establishSecurityContext屬性不存在...所以我想我正在尋找相同的屬性,但customBinding。我以爲有人可能馬上知道答案。 – Sylvain 2010-07-23 20:26:08

+0

這聽起來像你現在沒有做任何認證...... – annakata 2010-11-03 16:36:27

回答

1

假設你正在使用HTTPS您的交通,你嘗試:

UserNameOverTransport,使「安全」運送用於交換的憑證,而是試圖建立一個「安全」的信息通道。

而且你secureConversationBootstrap是多餘的,因爲當authenticationMode="SecureConversation"

<customBinding> 
    <binding name="b1"> 
     <security authenticationMode="UserNameOverTransport"/> 
     <binaryMessageEncoding/> 
     <httpsTransport/> 
    </binding> 
</customBinding> 

如果你想要的一切是在明確這只是使用,然後用<httpTransport/>

相關問題