0

我开发了一个应用程序安全 wcf 使用消息模式:

         <security mode="Message">                      
<message clientCredentialType="UserName" negotiateServiceCredential="true"/>
</security>

它在本地机器上运行良好,但是当我将它运行到其他电脑时,它会通知错误:

安全协议无法验证传入消息

使用跟踪我看到:

安全时间戳无效,因为它的创建时间 ('2012-07-17T21:08:43.211Z') 在未来。当前时间为“2012-07-17T07:08:48.769Z”,允许的时钟偏差为“00:05:00”。

什么是问题?谢谢

4

1 回答 1

0

一种选择可能是(如果您不需要时间戳) - 您可以禁用向请求中的安全标头添加时间戳,并且 WCF 不会在响应中期望它。取自链接的代码

// *** Don't include TimeStamp header - so server won't expect it back
// *** This allows results returned without any Soap Headers
BindingElementCollection elements = client.Endpoint.Binding.CreateBindingElements();
elements.Find<SecurityBindingElement>().IncludeTimestamp = false;
client.Endpoint.Binding = new CustomBinding(elements);
于 2013-10-22T20:29:21.017 回答