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

时间:2012-07-17 07:19:32

标签: c# wcf web-services

我使用消息模式开发应用程序安全性:

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

它在本地机器上运行良好,但是当我将它运行到PC时,它会出现错误:

  

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

使用跟踪我看到:

  

安全时间戳因其创建时间而无效   ('2012-07-17T21:08:43.211Z')在未来。现在的时间是   '2012-07-17T07:08:48.769Z'并允许时钟偏差   '00:05:00'

什么是问题?感谢

1 个答案:

答案 0 :(得分:0)

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

// *** 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);