3

我遵循了这个 codeproject示例
使用 JQuery 中的 wsHttpBinding 公开的服务部分,它写道:

使用“wsHttpBinding”绑定公开的服务实现了 WS-* 系列 Web 服务规范的 WS-Security。由于绑定使用安全性,请求将被拒绝。如果不在 JQuery 端实现 WS-Security,则无法调用该服务。因此,为了调用服务方法,我们必须在安全性上做出妥协。

他们正在实施一个非安全<wsHttpBinding>端点。

但我希望我的<wsHttpBinding>意志是<security mode="Message">
这种偏离路线不起作用并返回以下错误:

无法处理该消息。这很可能是因为“http://www.enghouse.com/CosmoCom/WebAdminAPIServiceLibrary/IQueue/GetAllQueues”操作不正确,或者因为消息包含无效或过期的安全上下文令牌,或者因为绑定之间不匹配。如果服务由于不活动而中止通道,则安全上下文令牌将无效。为了防止服务过早中止空闲会话,请增加服务端点绑定的接收超时。

如果我将其更改为<security mode="None">它可以完美运行。

所以我的问题是我该如何实施<security mode="Message">
我需要做什么?

谢谢!

4

1 回答 1

2

查看 Ws.js。它是一个帮助实现 ws-security 的 JavaScript 库。

就我个人而言,只有当我必须将 Web 客户端与我没有源代码的现有 WCF 服务集成时,我才会这样做。开销太大,无法为 Web 客户端维护 SOAP 协议和 WCF 安全性而没有任何额外的好处。如果您控制此服务的源,我将使用ASP.NET Web API为 Web 客户端提供一个 REST API,并使用带有 HTTP 基本安全性的 SSL。

于 2012-11-06T14:00:53.913 回答