2013-09-30 57 views
8

在我的WCF服務中,我試圖通過SSL連接向使用JSON的客戶端發送數據。我能夠使用wsHttpBinding將安全模式爲Transport的OData數據庫源保護到我的客戶端。爲什麼webHttpBinding無法執行相同的操作來使用SSL?我如何配置需要使用JSON的端點來使用SSL連接?如何確保webHttpBinding?

本質上webHttpBindingwsHttpBinding之間的區別是什麼?

<bindings> 
    <wsHttpBinding> 
    <binding name="TransportSecurity"> 
     <security mode="Transport"> 
     <transport clientCredentialType="None" /> 
     </security> 
    </binding> 
    </wsHttpBinding> 
</bindings> 

<behaviors> 
    <serviceBehaviors> 
    <behavior name="ServiceBehavior"> 
     <serviceMetadata httpsGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
    </behavior> 
    </serviceBehaviors> 

    <endpointBehaviors> 
    <behavior name="EndpBehavior"> 
     <webHttp /> 
    </behavior> 
    </endpointBehaviors> 
</behaviors> 

<services> 
    <service behaviorConfiguration="ServiceBehavior" name="DataService4.DataService"> 

    <endpoint address="" binding="webHttpBinding" contract="DataService4.IService" bindingConfiguration="TransportSecurity" behaviorConfiguration="EndpBehavior" /> 

    <endpoint contract="IMetadataExchange" binding="mexHttpsBinding" address="mex" /> 
    </service> 
</services> 

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> 

回答

12

我認爲這篇文章將解決您的問題。 Creating a WCF RESTful Service And Secure It Using HTTPS Over SSL

+0

鏈接已損壞。這就是爲什麼僅鏈接答案不應被視爲答案。 – Ashkan

+0

鏈接沒有壞,我的瀏覽器出現了一些問題,顯示404沒有找到頁面。無論如何,我認爲最好是在回答中包含文章摘要,正如它在SO的回答頁面中說的那樣:「總是引用重要鏈接中最相關的部分,以防目標站點無法訪問或永久脫機。」謝謝。 – Ashkan

8

相關部分從http://www.allenconway.net/2012/05/creating-wcf-restful-service-and-secure.html是這樣的:

<bindings> 
    <webHttpBinding> 
    <binding> 
     <security mode="Transport" /> 
    </binding> 
    </webHttpBinding> 
</bindings> 

,但如果需要也除去曝光的元數據。

的細節都記錄在MSDN這裏:https://msdn.microsoft.com/en-us/library/bb924478(v=vs.110).aspx

相關的部分是:使用HTTPS提供

的運輸保障。該服務需要配置爲使用SSL證書的 。該消息使用HTTPS完全保護 ,並且該服務由客戶端使用 服務的SSL證書進行身份驗證。通過transport of webHttpBinding的ClientCredentialType屬性來控制客戶端身份驗證 。