我正在使用优秀的DuplexHttpBinding。我现在想扩展它,以便我可以使用带有消息凭据的传输安全性。我在这种模式下设置了一些正常BasicHttpBinding
,如下所示:
<basicHttpBinding>
<binding name="BasicHttpBinding_Custom">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName"/>
</security>
</binding>
</basicHttpBinding>
但我不能对DuplexHttpBinding
做同样的事情,因为它没有安全元素。
我的问题是:如何使用DuplexHttpBinding
设置TransportWithMessageCredential
?要么。更一般地说,如何通过继承System.ServiceModel.Channels.Binding
来为您创建的绑定设置邮件安全性?
我一直在努力寻找有关此问题的任何信息,因此非常欢迎任何指向相关文档的链接!
答案 0 :(得分:1)
解决方案是添加SecurityBindingElement
作为BindingElementCollection
中的第一个元素,因此在绑定的CreateBindingElements
方法中:
SecurityBindingElement security = SecurityBindingElement.CreateUserNameOverTransportBindingElement();
collection.Add(security);