我已經使用WSDualHttpBinding創建了一個WCF服務。未指定安全模式,因此將其設置爲WSDualHttpSecurityMode.Message。帶有郵件安全模式的WCF服務中的匿名函數調用
它工作正常,從客戶端連接到具有證書的服務器,這是允許的。
當我使用憑據連接到服務器時,這是不被允許的,我得到一個SecurityNegotiationException。
這就是所有好的,我現在想要做的是,服務中有一個功能,允許匿名調用。
所以我想嘗試調用該服務,並且當我的憑據不被允許時,我想調用一個名爲GetDescription()的函數,該函數將返回該服務的描述。
原因是,我們正在託管一些服務,並通過廣播發現它們。如果有服務,客戶端不被允許,我想從服務中看到一些細節,通過重新配置服務來解決這個問題。
目前只有基於Windows的身份驗證服務,但將來還會有一些服務使用自定義身份驗證。因此,我首先想嘗試與基於Windows的身份驗證進行連接,如果此操作失敗,我想要求用戶輸入憑據並希望嘗試使用這些憑據連接到該服務。 當時,當我要求用戶輸入憑證時,我想顯示一些有關該服務的詳細信息,以便用戶可以更容易地識別服務,因爲在同一臺計算機上將運行多個服務。 – christian
我想這將需要完全取代WCF認證機制。這通常通過暴露兩個端點來完成 - 一個用於Windows身份驗證,一個用於用戶名身份驗證。你試圖做的主要是WCF/Web服務範圍之外。 –
我認爲你是對的。也許我必須提供兩個wcf服務。一個安全的和一個沒有安全的提供描述。 – christian