我有2個不同的應用程序,一個是Silverlight,另一個是Web應用程序。Silverlight 4應用程序和Web應用程序的單點登錄
我需要單點登錄。
情景是這樣的:任何用戶登錄到Silverlight應用程序,然後在該應用程序中有一個菜單,以登錄模式打開其他Web應用程序。
兩個應用程序都有不同的數據庫,但用戶名和密碼都相同。
我正在爲silverlight應用程序使用WCF服務。
有人可以提出一個解決方案嗎?
我有2個不同的應用程序,一個是Silverlight,另一個是Web應用程序。Silverlight 4應用程序和Web應用程序的單點登錄
我需要單點登錄。
情景是這樣的:任何用戶登錄到Silverlight應用程序,然後在該應用程序中有一個菜單,以登錄模式打開其他Web應用程序。
兩個應用程序都有不同的數據庫,但用戶名和密碼都相同。
我正在爲silverlight應用程序使用WCF服務。
有人可以提出一個解決方案嗎?
在我看來,你應該使用一個數據庫來保存每個登錄用戶的當前會話令牌。在這種情況下,你登錄的時候並不重要,你將從這個數據庫獲取登錄令牌。
我假設你正在使用ASP.NET和Forms /其他身份驗證,並且Silverlight應用程序來自同一個Web服務器。
先看看這個鏈接,並從Visual Studio的Silverlight業務應用程序模板:HTTP://msdn.microsoft.com/en-us/library/ee942449(V = VS.91)的.aspx
一更多的手動方法可能包括編寫一個WCF服務,該服務返回或設置您在會話中成功登錄時存儲的「UserToken」。
// the wcf service needs these attributes
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
// a manual approach: successful login, create a webservice method to call from Silverlight to set the authentication
HttpContext.Current.Session.Add("currentUserToken", userToken);
FormsAuthentication.SetAuthCookie(this.EmailAddressUserControl1.EmailAddressTextBox.Text, false);
窗體身份驗證會照顧您的退出對ASP.Net的請求,但你必須 處理會話超時一個服務請求自己。