状況:
- IIS7(.NET4)を搭載したWindows2008Webサーバーがあります。
- デフォルトのHTTPS(443)ポートを介して のみWebサーバーと通信できます
- サーバーでホストされているASP.NETWebサイトがあり、サービスはWebサイトコードの一部です。
- 一部のクライアント(WCFをサポートするデスクトップアプリケーション)は、新しいWCFWebサービスと通信したいと考えています
- パーティ間のメッセージサイズは100〜400kbです。
- WCFサービスをIISの一部として維持したいと思います。
- クライアント側では、サービスに接続するためのカスタムユーザー名とパスワードを要求します
- より多くのDBプロセスが背後にあるより長いセッションがあります
- そして、クライアントからのpingのような短い短いセッションがあります
- クライアントのパスワードは(DBから)Webサーバーに保存されます。クライアントはこれらのパスワードに対して認証される必要があります。
質問:
1。これらの制約から、使用するのに最適なプロトコルは何でしょうか?
2.デフォルトでセッションを使用しますか?
3.最初にこのバインディングを試しました(動作しますが、セッションのサポートはありません)
<!--define a SOAP binding-->
<wsHttpBinding>
<binding name="DefaultSOAPBasedHTTPSBinding" maxReceivedMessageSize="400000">
<readerQuotas maxArrayLength="102400" />
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</wsHttpBinding>
セッションを有効にするには:
<wsHttpBinding>
<binding name="DefaultSOAPBasedHTTPSBinding" maxReceivedMessageSize="400000">
<readerQuotas maxArrayLength="102400" />
<reliableSession enabled="true" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Basic" />
<message clientCredentialType="Certificate"/>
</security>
</binding>
</wsHttpBinding>
私の感じでは、このトランスポートとメッセージのセキュリティは多すぎます。つまり、wsHttpBindingとのセッションを許可するには、これが本当に必要なのでしょうか。