2014-01-28 91 views
1

我有一個BizTalk應用程序啓動並正在運行當前正在使用WCF-BasicHttp適配器。目前它僅使用使用UserName憑證類型的Message安全性,並且所有工作都正常。將非BizTalk WCF配置轉換爲BizTalk WCF定製端點

事情已經發生變化,我們現在需要接受傳輸(IIS)級別的客戶端證書以進行服務授權,並且仍然繼續使用消息安全性進行服務驗證。

多的痛苦和搜索之後,我能得到這個在非的BizTalk WCF環境中工作立足我這個this post位的配置,並結束了與以下customBinding配置:

<customBinding> 
    <binding name="CustomCDARequestEndpointBinding">      
     <textMessageEncoding messageVersion="Soap11" /> 
     <security authenticationMode="UserNameOverTransport" /> 
     <httpsTransport requireClientCertificate="true" /> 
    </binding> 
    </customBinding> 

這導致了WCF客戶端配置,如下所示:

<customBinding> 
    <binding name="CDARequestEndpoint"> 
     <security defaultAlgorithmSuite="Default" authenticationMode="UserNameOverTransport" 
     requireDerivedKeys="true" includeTimestamp="true" messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"> 
     <localClientSettings detectReplays="false" /> 
     <localServiceSettings detectReplays="false" /> 
     </security> 
     <textMessageEncoding messageVersion="Soap11" /> 
     <httpsTransport requireClientCertificate="true" /> 
    </binding> 
    </customBinding> 
</bindings> 
<behaviors> 
    <endpointBehaviors> 
    <behavior name="ohBehave"> 
     <clientCredentials useIdentityConfiguration="false"> 
     <clientCertificate findValue="6D0DBF387484B25A16D0E3E53DBB178A366DA954" storeLocation="CurrentUser" 
      x509FindType="FindByThumbprint" /> 
     </clientCredentials> 
    </behavior> 
    </endpointBehaviors> 
</behaviors> 

這工作完全正常在非的BizTalk環境,這似乎是配置的關鍵部分是由於的<httpsTransport requireClientCertificate="true" /> config元素屬性。問題是,無論我嘗試什麼,我都無法在任何地方的BizTalk WCF-Custom/customBinding配置中找到類似的設置。我不能添加<httpsTransport>綁定元素擴展,因爲它不」在BizTalk

enter image description here

爲存在於選項有誰知道我的選擇是在這裏嗎?

  • 我可以直接編輯web.config嗎?
  • 是否有另一個擴展我可以添加到BizTalk GUI中實現相同的效果?
  • 我可以在編排中編寫一些東西,以我提議的方式手動設置這個接收位置嗎?

回答

2

因爲WCF-BasicHttp適配器只表面某些屬性,你不能使用你的目的。

相反:

  1. 開始與WCF的自定義適配器
  2. BindingType = customBinding
  3. 刪除httpTransport
  4. 添加httpsTransport(然後你會看到requireClientCertificate)
  5. 添加clientCredentials行爲和在「憑據」選項卡中設置您的選項和憑據。
+0

我想我並不清楚,我已經使用WCF的自定義適配器......有一件事我根本就沒想到做的是刪除'httpTransport' ......更別說它會暴露'httpsTransport'。這給了我希望! – Bensonius

+0

這是它boatmen!雖然現在看起來很明顯,當httpTransport已經存在時,GUI不會顯示httpsTransport元素,但當它是您第一次進入customBinding配置屏幕時,似乎並不明顯,這是肯定的。 – Bensonius