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

使用安全模式测试WCF服务wsHttpBinding=";TransportWithMessageCredential“;,wcf,ws-security,wshttpbinding,Wcf,Ws Security,Wshttpbinding,我曾尝试使用soapUI进行测试,但在启用安全性时,它不支持wsHttpBinding。当使用wsHttpBinding且安全性为none时,soapUI可以工作 我们还尝试了WCF风暴,它确实有效,我们可以加载我们的客户端配置文件,但是我们正在寻找WCF风暴的其他替代方案 有没有其他类似于soapUI的工具,soapUI推荐使用并且可以与上述配置一起使用?wsHttpBinding只是微软对一些WS-*相关配置的模糊命名。SOAPUI支持一些与安全相关的配置,如果您使用TransportWit

我曾尝试使用soapUI进行测试,但在启用安全性时,它不支持wsHttpBinding。当使用wsHttpBinding且安全性为none时,soapUI可以工作

我们还尝试了WCF风暴,它确实有效,我们可以加载我们的客户端配置文件,但是我们正在寻找WCF风暴的其他替代方案


有没有其他类似于soapUI的工具,soapUI推荐使用并且可以与上述配置一起使用?

wsHttpBinding
只是微软对一些WS-*相关配置的模糊命名。SOAPUI支持一些与安全相关的配置,如果您使用
TransportWithMessageCredential
安全模式,您应该不会遇到问题。您只需要连接到正确安全的HTTPS端点,并响应您的请求(可能还有一个时间戳)

我在尝试使用wsHttpBinding和TransportWithMessageCredential安全设置测试wcf服务时遇到了类似的问题

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

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

经过多次尝试和错误,并在web上浏览了大量文章后,我需要启用WS-a寻址并启用wsa:to元素

这让我更进一步了,但我还是收到了同样的错误消息

那么这个安全上下文的东西呢,它是必要的吗?我的客户端在每次调用后都会进行处理,因此不需要SCT ref:

设置buildSecurityContext=“false”使我发现了安全上下文令牌错误,结果证明一切都准备就绪

但是,如果确实禁用了安全上下文,并且没有启用wsa:To元素,则会收到如下错误消息:

由于EndpointDispatcher上的AddressFilter不匹配,无法在接收器上处理收件人为“”的消息。检查发送方和接收方的端点地址是否一致

但一定要注意裁判的位置。如果每次调用后都不处理客户机,那么最好添加另一个单独的绑定,并将establishSecurityContext设置为false


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

我的解决方案使用的是传出的WS-security配置,我将解释以下步骤:

  • “显示项目视图”(右键单击项目文件夹)
  • 转到“WS-Security配置”选项卡
  • 在顶部添加图标,并指定“用户”或其他内容
  • 然后转到第二个添加图标(底部窗格),在“PasswordText”中输入用户名、密码和密码类型(保留标记的其他两个复选框)
  • 最后转到soap请求,选择基本授权和“Outgoing WSS:”用户或您创建的其他用户
请记住,在添加传出WSS后关闭所有请求窗口


希望有帮助,干杯。

谢谢-我会再试一次。然而,我在soapUI论坛上看到了这篇文章——这篇文章声称soapUI不支持WsHttpBinding,所以我有点困惑?这种支持取决于WsHttpBinding上配置的其他功能。如果您不使用分布式事务、可靠的消息传递和高级安全性(这意味着
Message
模式),您应该不会有问题。您需要使用SOAP 1.2和WS-Addressing 1.0+UserName 1.0令牌,并通过HTTPS使用纯文本密码。大家好,我知道这个答案是几年前的,但现在我有一个类似的挑战,可以使用您的输入。如果您有任何带宽,请参阅-谢谢。