2017-02-16 128 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服務並在發佈時安裝該證書。謝謝你的幫助。 –

相關問題