0

セキュリティモードがメッセージに設定された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 に要素が作成されます。

このセクションが空白の場合でも、クライアントはサービスに正常に接続できることがわかりました。私の推測では、クライアントはサービス証明書のエンコードされた値を使用してメッセージを暗号化します。しかし、構成でエンコードされた値が指定されていない場合も機能しますか? それで、その目的は何ですか?

4

1 に答える 1

0

バインディングで暗号化を使用することを wcf 構成で指定した場合にのみ暗号化します。

<wsHttpBinding>
  <binding>
    <security mode="Message">
      <transport clientCredentialType="Windows" proxyCredentialType="None"
       realm="" />
      <message clientCredentialType="Certificate" negotiateServiceCredential="true"
       algorithmSuite="TripleDesSha256Rsa15" establishSecurityContext="true" />
     </security>
   </binding>
</wsHttpBindings>
于 2012-07-25T06:42:16.240 に答える