我正在尝试设置将使用 WSHttpBinding 进行通信的客户端(Web 应用程序)和服务(WCF 服务)。看来,为了使用此绑定,客户端会发送初步消息来设置通道。
客户端和服务之间存在一条服务总线,该总线在自定义标头上进行路由。当使用 BasicHttpBinding 安全性时,消息的路由不会出现问题。
我的问题是:有没有办法将相同的自定义标头添加到初步的 RequestSecurityToken 消息中?
先感谢您。
这个问题已经解决了。
不幸的是,根据 MSDN 文档,使用 WCF 传输安全的服务不能通过路由器,服务和客户端也不应该位于 Internet 上(https://msdn.microsoft.com/en-us/library/ff648863.aspx#TransportSecurity https://msdn.microsoft.com/en-us/library/ff648863.aspx#TransportSecurity).
我们想违反这两条“原则”。
因此,为了减少消息数量,从 5 次调用和响应减少到 1 次,我们切换到 Message Security 并关闭了 EstostSecurityContext 和 NegotiateServiceCredential。 - 这必须在服务和客户端配置设置上完成。
除此之外,一个值得注意的提示可能是,为了将服务指向我们的服务总线,我们改变了服务在客户端的ClientVia行为。
关闭EstablishContext和NegotiateServiceCredential:
WSHttpBinding binding = new WSHttpBinding();
binding.Security.Mode = SecurityMode.Message;
binding.Security.Message.EstablishSecurityContext = false;
binding.Security.Message.NegotiateServiceCredential = false;
将客户端指向服务总线:
serviceClient.Endpoint.EndpointBehaviors.Add(new ClientViaBehavior(new Uri("http://url/WCFService/ServiceName.svc")));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)