使ASP.NET Web應用程序與WCF服務通信的身份驗證選項是什麼?ASP.NET和WCF身份驗證選項
場景:
- 用戶輸入自己的用戶名和密碼在ASP.NET表單。
- ASP.NET需要將其傳遞給WCF以對用戶進行身份驗證。
- 如果通過驗證,用戶可以在網站上執行操作。每個操作都需要將數據發送到不同的WCF操作。 WCF需要知道用戶在每次通話中的身份。
最簡單的解決方案是將用戶名/密碼存儲在ASP.NET會話狀態中。但是,這是不安全的,因爲密碼存儲在服務器的內存中。
我寧願不使用證書來認證服務的ASP.NET「客戶端」,因爲除了ASP.NET之外,這個WCF可能會被另一個客戶端使用。
到目前爲止我所見過的最好的建議是使用Windows Identity Foundation(WIF)。看來這需要一個STS。根據MSDN,微軟似乎並不建議通過Visual Studio設置STS。不能保證STS在部署環境中可用,因爲某些環境可能使用Active Directory,而其他環境可能有自定義用戶存儲。是否可以設置一個自定義的STS來對照自定義用戶存儲進行身份驗證?我在查找文檔時遇到問題。
除了使用WIF還有其他選擇嗎?自定義WCF身份驗證服務如何返回可用於對主WCF服務進行身份驗證的令牌?