【发布时间】:2012-05-17 21:01:37
【问题描述】:
我发现自己需要找到一个使用 HTTPS/SOAP 并且必须是双工的 WCF 绑定。我以前以编程方式使用 NetTcpBinding,但现在绑定必须是 HTTPS/SOAP。我做了一些研究,似乎不创建自己的 CustomBinding 是不可能的。
但是,我有点不知所措(对绑定和设置不太熟悉)。我似乎无法获得所需的正确绑定元素:
public class CustomHttpsBinding : CustomBinding
{
public CustomHttpsBinding()
{
}
public override BindingElementCollection CreateBindingElements()
{
ReliableSessionBindingElement https = new ReliableSessionBindingElement();
SecurityBindingElement security = SecurityBindingElement.CreateCertificateOverTransportBindingElement();
CompositeDuplexBindingElement duplex = new CompositeDuplexBindingElement();
SslStreamSecurityBindingElement ssl = new SslStreamSecurityBindingElement();
MessageEncodingBindingElement encoding = new GZipMessageEncodingBindingElement((MessageEncodingBindingElement) new BinaryMessageEncodingBindingElement());
HttpsTransportBindingElement transport = new HttpsTransportBindingElement();
return new BindingElementCollection(new BindingElement[] { https, security, duplex, ssl, encoding, transport });
}
在检查 soap 是否满足安全传输要求时,它给了我一个无效的操作异常,说我的合同配置了需要完整性和机密性的身份验证模式。但是,传输无法提供完整性和机密性。
好像我的 HttpsTransportBindingElement 不正确?我不确定。
谢谢
编辑:
我确实设法让 WSDualHttpBinding 在某一时刻工作,但它似乎无法使用 HTTPS(以及互联网上的其他人说它甚至不应该使用)
【问题讨论】: