wsHttpBindingは.NET クライアント専用ですか?
wsHttpBinding ではデフォルトのセキュリティが有効になっているため、データは暗号化されて転送されます。では、.NET 以外のクライアント ( java や phpなど) はどのようにしてそのような WCF サービスを利用できるのでしょうか?
wsHttpBindingは.NET クライアント専用ですか?
wsHttpBinding ではデフォルトのセキュリティが有効になっているため、データは暗号化されて転送されます。では、.NET 以外のクライアント ( java や phpなど) はどのようにしてそのような WCF サービスを利用できるのでしょうか?
Jeroenがデフォルトで言うように、wsHttpBindingはデフォルトでメッセージセキュリティとWindowsクレデンシャルになります
Windows以外のクライアントの場合は、認証モードを変更する必要があります。ただし、メッセージセキュリティを維持する場合は、WS-Security(およびWS-Trust / WS-SecureConversation)を実装するための消費ツールキットも必要です。
wsHttpBindingのどの機能を使用していますか?これはbasicHttpBindingが適切でないことを意味しますか?BasicHttpBindingは、相互運用シナリオで機能するためのより単純なバインディングです。
WsHttpBindingのデフォルトのメッセージセキュリティは「Windows」に設定されていると思います。これは、少なくともWCFサービスとクライアントのセキュリティがすぐに機能するためである可能性があります。
ただし、相互運用性が必要な場合は、これを簡単に変更できます。次のいずれかに設定できます。
詳細については、「wsHttpBindingのメッセージ」MSDNページを参照してください。JavaまたはPHPクライアントとの通信をテストするには、セキュリティを一時的に無効にすることができます。
<wsHttpBinding>
<binding>
<security mode="Message">
<!-- Not recommended! Use only for testing. -->
<message clientCredentialType="None" />
</security>
</binding>
</wsHttpBinding>
動作するようになったら、WCF以外の側がサポートしているものに応じて、たとえば証明書を使用するように切り替えることができます。