我有一个具有以下要求的WCF服务:
这是我的绑定:
<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缓存,或者您是否需要编写自己的代码?