2011-04-11 42 views
3

我已經查看了很多來源,並找到了很多示例,但沒有一個真正適合我希望進行項目的情況。我正在編寫一些WCF服務,其中一些可公開訪問,其他服務不可用(服務器到服務器),這將允許一個完全靈活的雲應用程序,確保能夠根據需要通過Azure擴展服務。我不確定使用消息身份驗證的方式,因爲我想確保特定的用戶登錄,可以執行不同的任務,並防止其他人執行這些任務。在雲中處理WCF消息身份驗證的最佳方式(C#)

我見過的大部分使用角色或ASP.NET成員資格。我有我自己的自定義成員資格用戶將用於登錄,並且我不依賴標準的成員資格提供程序或活動目錄。你的建議是什麼?我想創建一個在成功登錄時創建的令牌,存儲在一個cookie中,作爲傳遞給每個方法的參數添加,但通過一些研究,我認爲可以在不修改所有方法的情況下處理這個令牌。

你的想法是什麼?

回答

3

您可以輕鬆地實現身份驗證,而無需使用UserNameAuthentication和編寫自定義驗證手動傳遞令牌到你所有的功能 - 有一個非常簡單的教程here

如果使用UserNameAuthentication,你將需要使用SSL/HTTPS,這意味着您需要獲得服務器證書 - 無論如何,對於大多數業務應用程序來說,這是個好主意。

在服務器端,您可以獲取當前用戶的身份:
IIdentity wic = OperationContext.Current.ServiceSecurityContext.PrimaryIdentity as IIdentity;

+0

真棒,這幫助了很多!我將創建一個測試項目來深入研究這個問題。問題很簡單,一旦用戶通過驗證,我如何獲得關於未來請求的信息?意思是,用戶123認證,如何知道下一個請求中的用戶123?我如何保持狀態?這是一個存儲在cookie中的東西的問題嗎?我確信有多種選擇,但對於基於雲的解決方案,我想知道最佳選擇是什麼? – 2011-04-12 16:36:46

0

使用基本身份驗證,並對您的會員店進行webservice身份驗證。