看这里: http://social.msdn.microsoft.com/forums/en-us/wcf/thread/F822CCB9-A8A1-474F-87AF-E5CD9EC34494
...没有正确复制安全令牌的“id”属性。 这导致为服务器上的安全令牌创建新ID,该ID不再与安全签名数据匹配,因此将拒绝该消息。
在您的自定义实现中 WSSecurityTokenSerializer 要序列化您的安全令牌,您可能没有复制 Id 令牌的属性。 ID需要从客户端到服务器匹配。
WSSecurityTokenSerializer
Id
一个常见的错误(我确信我已经犯过的错误)就是这样 id = Guid.NewGuid().ToString() 在构造函数中。这对于它在clinet上的初始创建很好,但是当它在服务器上反序列化时,它需要使用来自客户端的相同ID,而不是再次使用新的guid。
id = Guid.NewGuid().ToString()