使用安全模式测试WCF服务wsHttpBinding =“TransportWithMessageCredential”

时间:2012-12-05 17:45:39

标签: wcf ws-security wshttpbinding

我尝试使用soapUI进行测试,但是在启用安全性时它不支持wsHttpBinding。 soapUI在使用wsHttpBinding时确实有效,而安全性为none。

我们还尝试了WCF Storm,它可以正常工作,我们可以加载我们的客户端配置文件,但是我们正在寻找WCF Storm的其他替代方案。

是否还有其他类似于soapUI的工具,SO推荐并且可以使用上述配置?

3 个答案:

答案 0 :(得分:2)

wsHttpBinding只是微软对一些WS- *相关配置的模糊命名。 SOAPUI支持一些与安全性相关的配置,如果使用TransportWithMessageCredential安全模式,则应该没有问题。您只需连接到正确安全的HTTPS端点和provide credentials (User name)以获取您的请求(也可能是时间戳)。

答案 1 :(得分:0)

当尝试使用wsHttpBinding和TransportWithMessageCredential securiuty set测试wcf服务时,我遇到了类似的问题。

在每次调用时,SoapUI都会收到一条错误消息:

  

无法处理邮件。这很可能是因为行动' http://www.mysite.com/ISomeService/SomeMethod'不正确或因为邮件包含无效或过期的安全上下文令牌,或者因为绑定之间存在不匹配。如果服务因不活动而中止通道,则安全上下文令牌将无效。要防止服务中止空闲会话,请过早增加服务端点绑定的接收超时。

经过多次试验和错误,浏览网页上的大量文章,我需要启用WS-A寻址并启用wsa:To元素。

这让我更进一步,但我仍然得到了同样的错误信息。

那么这个安全上下文的事情呢,它需要吗?我的客户在每次通话后处理,因此不需要SCT ref:SO post

设置establishSecurityContext =" false"让我了解安全上下文令牌错误,事实证明一切都准备摇滚。

但是,如果您确实禁用了安全上下文,并且未启用wsa:To元素,那么您将收到如下错误消息:

  

带有To''的消息由于EndpointDispatcher上的AddressFilter不匹配,无法在接收器处理。检查发件人和收件人的EndpointAddresses是否一致。

但请注意参考文章。如果您在每次调用后都没有处置客户端,那么添加另一个单独的绑定并将establishSecurityContext设置为false可能是明智的。

换句话说:就我所知,SoapUI似乎不支持安全上下文。

答案 2 :(得分:0)

我的解决方案是使用传出WS-Security配置,我将解释这些步骤:

  • "显示项目视图" (右键单击Proyect文件夹)
  • 转到" WS-Security配置"标签
  • 在顶部添加图标并指定" user"或者其他什么。
  • 然后转到第二个添加图标(底部面板)并在" PasswordText"中输入用户名,密码和密码类型。 (保留其他2个复选框)。
  • 最后转到soap请求,选择Authorization Basic和" Outgoing WSS:"用户或您创建的其他用户。

在添加Outgoing WSS后,记住关闭所有请求窗口。

希望它有所帮助,干杯。