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

使用基于证书的消息安全性启用WCF重播检测缓存,wcf,wcf-binding,wcf-security,Wcf,Wcf Binding,Wcf Security,我的WCF服务具有以下要求: 通过SSL发送(HTTPS传输) 上的可靠消息传递 使用X.509证书的WS-*消息安全性 在上回放检测 以下是我拥有的绑定: <customBinding> <binding name="replayDetectionBinding"> <reliableSession /> <security authenticationMode="SecureConversation">

我的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缓存,或者您必须自己编写代码