4

WCF で IBM DataPower 3.7.1.x Web サービスを使用しようとすると、次のエラー メッセージが表示されます。

「System.IdentityModel.Tokens.X509SecurityToken」トークン タイプのトークン認証子が見つかりません。そのタイプのトークンは、現在のセキュリティ設定に従って受け入れることができません。

HTTP 応答が 200 として戻ってきており、Fiddler でデバッグしているときに正しい SOAP 応答を確認できます。

ただし、WCF クライアントは、SOAP 応答で BinarySecurityToken 要素を処理する方法を認識していないようです。

これが私のWCF設定です:

  <bindings>
    <basicHttpBinding>
      <binding name="TestBinding">
        <security mode="TransportWithMessageCredential">
          <message clientCredentialType="Certificate" />
        </security>
      </binding>
    </basicHttpBinding>
  </bindings>

  <behaviors>
    <endpointBehaviors>
      <behavior name="TestBehavior">
        <callbackDebug includeExceptionDetailInFaults="true" />
        <clientCredentials>
          <clientCertificate storeLocation="LocalMachine" 
                             storeName="My" 
                             x509FindType="FindBySubjectName" 
                             findValue="test-cert"  />
          <serviceCertificate>
            <authentication certificateValidationMode ="PeerOrChainTrust" />
          </serviceCertificate>
        </clientCredentials>
      </behavior>
    </endpointBehaviors>
  </behaviors>

  <client>
     <endpoint  address="https://serviceURL"
                binding="basicHttpBinding"
                bindingConfiguration="TestBinding"
                behaviorConfiguration="TestBehavior"
                contract="ContraceGoesHere"
                name="ContraceNameGoesHere" />
  </client>

他の人が Microsoft と IBM の両方に同様の問題を報告しているのを見たことがあり、それについていくつかの StackOverflow の質問がありますが、機能する解決策は 1 つも見つかりませんでした。

どんな助けでも大歓迎です。

4

2 に答える 2

3

送信した石鹸、戻ってきた石鹸、および構成を公開してください。

また、この属性を追加してみてください:

<security allowSerializedSigningTokenOnReply="true" />

ここで説明されているように)

于 2011-03-31T18:19:59.850 に答える
2

Binding から Custom Binding に変換する方法:

http://webservices20.cloudapp.net/default.aspx

于 2012-05-08T14:25:32.620 に答える