2017-02-16 126 views
0

我有一个使用CustomBinding来使用Web服务的客户端。我在发送请求之前设置了服务和客户端证书,但这样我需要知道要使用的服务证书并将其安装在客户端计算机中。我想让服务提供当前的证书,所以我不必每次更改都更新它。如何在使用CustomBinding时启用WCF中的NegotiateServiceCredential

我知道这可以通过安全属性通过将NegotiateServiceCredential设置为真来使用WSHttpBinding,但由于我使用CustomBinding没有这样的属性,我不知道在哪里设置NegotiateServiceCredential为True。

任何人都可以帮助我吗?

谢谢。

回答

0

您需要创建一个通过HTTP工作的CustomBinding,并且上面有一个MessageSecurityOverHttpElement元素。在那里,你会发现一个NegotiateServiceCredential属性,它将允许启用/禁用该功能。

这个链接应该让你开始写一个Custom Binding with a SecurityBindingElement。从那里开始工作,直到您设法添加MessageSecurityOverHttpElement。

+0

谢谢,豪尔赫。这似乎是我应该使用“WSDualHttpBinding”,因为它是唯一包含安全属性以获得对NegotiateServiceCredential的访问权的绑定类。但是找不到任何关于应该将哪个绑定元素添加到我的customBinding中以使其工作的信息。到目前为止,我想我会不断更新每个客户端上的服务证书。 再次感谢。 –

+0

是否有任何理由你需要WSDualHttpBinding并且不能仅仅使用WSHttpBinding? WSDualHttpBinding是相当复杂的,因为它打开了另一个双工回调通道,除非你找不到任何其他方式解决你的问题,你应该真的远离WSDualHttpBinding :) –

+0

由于有关MessageSecurityOverHttp类的信息说它与wsDualHttpBinding一起使用,别再想别的了。无论如何,我们选择不同的方法,并构建一个工具来将远程服务器证书安装在一个存储库中,并且每个客户端都会使用Web服务并在发布时安装该证书。谢谢你的帮助。 –

相关问题