2013-09-30 15 views
8

私のWCFサービスでは、SSL接続を介してJSONを使用してクライアントにデータを送信しようとしています。セキュリティモードがTransportwsHttpBindingを使用して、ODataデータベースソースをクライアントに保護することができました。 SSLを使用するためにwebHttpBindingが同じことを実行できないのはなぜですか? 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のページが表示されないという問題がありました。とにかく、答えの記事のサマリーを答えの中に入れるのが最善だと思います。「どのサイトにも重要なリンクの最も重要な部分を常に引用しています。ありがとう。 – 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属性によって に制御されます。

関連する問題