使用基于证书的消息安全性启用WCF重播检测缓存

时间:2014-02-24 23:10:30

标签: wcf wcf-binding wcf-security

我有一个具有以下要求的WCF服务:

  • 通过SSL发送(HTTPS传输)
  • 可靠的消息传递
  • 使用X.509证书的WS- *消息安全性。
  • 重播检测

这是我的绑定:

  <customBinding>
    <binding name="replayDetectionBinding">
      <reliableSession />
      <security authenticationMode="SecureConversation">
        <secureConversationBootstrap authenticationMode="CertificateOverTransport"
          protectTokens="true">
          <issuedTokenParameters keyType="AsymmetricKey" />
        </secureConversationBootstrap>
        <localServiceSettings maxClockSkew="00:01:00"
          replayWindow="00:01:00" />
      </security>
      <textMessageEncoding />
      <httpsTransport maxReceivedMessageSize="5242880" maxBufferSize="5242880" />
    </binding>
  </customBinding>

该服务托管在IIS中,我有一个测试客户端向服务发出请求。我有Fiddler并且正在运行以捕获来自测试客户端和WCF服务的所有消息。

一切正常,包括重放窗口之外的重放检测。但是,我需要的是让重放检测使用nonce缓存,以便无论如何都拒绝相同的消息(只要该消息签名在nonce缓存中)。这部分没有发生。

我使用测试客户端发送消息,它由WCF服务接收并返回响应,我关闭连接。然后我使用Fiddler重新发布/重播发送的消息。在这种情况下,它被fiddler接受 - 即使我是从另一台机器发出的。

我已经做了很多搜索,并且已经阅读了我能找到的所有内容,但无法使其发挥作用。

在这种情况下,是否有人知道如何启用nonce缓存,或者您是否需要编写自己的代码?

0 个答案:

没有答案