セキュリティモードがメッセージに設定されたWCFサービスがあります。
<security mode="Message">
<message
clientCredentialType="UserName"
negotiateServiceCredential="true"
establishSecurityContext="true"
algorithmSuite="Default" />
</security>
...
<behaviors>
<serviceBehaviors>
...
<serviceCredentials>
<serviceCertificate findValue="my Certifiacate ..."/>
</serviceCredentials>
サービス証明書は serviceBehaviors セクションで提供されます。
VS がクライアント (.NET) を作成すると (サービス参照の追加によって) <identity><certificate encodedValue="long string"/></identity>
、web.config に要素が作成されます。
このセクションが空白の場合でも、クライアントはサービスに正常に接続できることがわかりました。私の推測では、クライアントはサービス証明書のエンコードされた値を使用してメッセージを暗号化します。しかし、構成でエンコードされた値が指定されていない場合も機能しますか? それで、その目的は何ですか?