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

.net WCF如何在自定义绑定上设置clientCredentialType,.net,wcf,wcf-security,.net,Wcf,Wcf Security,我用的是极好的。现在我想扩展它,以便可以使用消息凭据的传输安全性。我在此模式下设置了一些正常的BasicHttpBindings,如下所示: <basicHttpBinding> <binding name="BasicHttpBinding_Custom"> <security mode="TransportWithMessageCredential"> <message clientCredentialType="

我用的是极好的。现在我想扩展它,以便可以使用消息凭据的传输安全性。我在此模式下设置了一些正常的
BasicHttpBinding
s,如下所示:

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

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

我的问题是:如何使用
TransportWithMessageCredential
设置我的
DuplexHttpBinding
?或更一般地说,如何在继承自
System.ServiceModel.Channels.binding
创建的绑定上设置消息安全性


我一直在努力寻找有关这方面的任何信息,所以任何相关文档的链接都是非常受欢迎的

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

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

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

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