WCF如何在自定义绑定上设置clientCredentialType

时间:2010-07-13 09:28:59

标签: .net wcf wcf-security

我正在使用优秀的DuplexHttpBinding。我现在想扩展它,以便我可以使用带有消息凭据的传输安全性。我在这种模式下设置了一些正常BasicHttpBinding,如下所示:

<basicHttpBinding>
    <binding name="BasicHttpBinding_Custom">
      <security mode="TransportWithMessageCredential">
        <message clientCredentialType="UserName"/>
      </security>
    </binding>
</basicHttpBinding>

但我不能对DuplexHttpBinding做同样的事情,因为它没有安全元素。

我的问题是:如何使用DuplexHttpBinding设置TransportWithMessageCredential?要么。更一般地说,如何通过继承System.ServiceModel.Channels.Binding来为您创建的绑定设置邮件安全性?

我一直在努力寻找有关此问题的任何信息,因此非常欢迎任何指向相关文档的链接!

1 个答案:

答案 0 :(得分:1)

解决方案是添加SecurityBindingElement作为BindingElementCollection中的第一个元素,因此在绑定的CreateBindingElements方法中:

SecurityBindingElement security = SecurityBindingElement.CreateUserNameOverTransportBindingElement();
collection.Add(security);