我有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的请求,但你必须 处理会话超时一个服务请求自己。