将标头添加到WCF RequestSecurityToken消息

我正在尝试设置将使用WSHttpBinding进行通信的客户端(Web应用程序)和服务(WCF服务)。 看来为了使用这种绑定,客户端发送初步消息来设置频道。

在客户端和服务之间存在一个服务总线,它在自定义头上进行路由。 使用BasicHttpBinding安全性时,该消息没有问题。

我的问题是:有没有办法在初步的RequestSecurityToken消息中添加相同的自定义标头?

先感谢您。

这已经解决了。

不幸的是,根据MSDN文档,使用WCF传输安全性的服务无法通过路由器,服务或客户端也不应该位于Internet上( https://msdn.microsoft.com/en-us/library/ ff648863.aspx #TransportSecurity )。

我们想要违反两个“原则”。

因此,为了减少消息,从五个调用和一个响应,我们切换到Message Security并关闭EstablishSecurityContext和NegotiateServiceCredential。 – 必须在服务和客户端配置设置上完成此操作。

除此之外,一个值得注意的提示可能是,为了将服务指向我们的服务总线,我们更改了客户端服务的ClientViaBehavior。

关闭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")));