2011-01-14 22 views
1

我想要做的是:維護WCF客戶端和服務之間的身份驗證? (工作流提供)

1)驗證客戶爲先叫它做的WCF服務,這將是在每個用戶的基礎上,而不是每個應用程序的基礎。

2)檢查客戶端是否有權撥打電話。

3)對於後續調用僅授權的情況,對於先前的調用已經在步驟1中進行了認證。

OR

如果客戶端已連接到出於某種原因或「握手」的服務的不同實例被打破,重新進行身份驗證。

我希望這是有道理的,這是否隱式地發生在WCF使用用戶名和密碼認證和授權,或者我/有沒有辦法寫一些自定義的東西?基本上這是爲了效率。

非常感謝, 府谷

+0

你在哪裏託管你的WCF服務?你使用的是什麼類型的認證; Windows,Forms? – bic 2011-01-14 15:23:06

回答

2

這就是所謂的安全上下文(或安全會話),並有可能與信息安全。唯一的限制是會話在單個服務實例和客戶端代理之間處理(所有調用必須在同一個代理實例上完成)。

這裏是允許的安全上下文的一些基本配置:

<wsHttpBinding> 
    <binding name="wsHttp"> 
    <security mode="Message"> 
     <message clientCredentialsType="UserName" estabilishSecurityContext="true" /> 
    </security> 
    </binding> 
</wsHttpBinding> 

EstabilishSecurityContext默認爲true。當您打開此選項時,將使用WS-SecureConversation協議。第一次調用傳遞經過身份驗證的憑證,並向客戶端發放安全令牌。接下來的呼叫使用此安全令牌來提供客戶端身份。這種行爲對開發者來說是透明的,所以你根本不必處理令牌。

相關問題