2010-05-19 47 views
0

我正在开发使用WCF RIA服务的silverlight 3应用程序。我正在使用AuthenticationBase类来处理我的身份验证。据我所知,它使用ASP .NET身份验证库。如何在Silverlight中存储状态WCF RIA Services

当我登录到网站时,身份验证服务会处理登录状态,以便如果关闭网站并立即打开它,我仍然根据服务器登录。当网页被刷新或关闭并重新加载,我可以调用该方法,

WebContextBase.Current.Authentication.LoadUser()

并退回到身份验证服务(运行在服务器上),并计算出是否我仍然登录到该网站。如果发生超时,答案将是否定的。如果是这种情况,我可以显示登录对话框。

我想解决的问题是,身份验证服务会消耗密码,并且我无法再次检索该密码。

如果用户登录到站点,我想将密码存储在服务器上,并向客户端返回一个令牌以与该密码匹配。我在服务器端有一些需要该密码的其他服务。

那么我应该在服务器上存储密码?如何做到这一点? WCF身份验证存储状态如何?

+0

是否有可能实现一个静态类为例?这是我已经尝试过的,它似乎工作。我已经确保使用锁定,以便数据不能一次由多个客户端更改。 – peter 2010-05-19 04:42:54

回答

1

请你扩展一下,为什么你要为未经身份验证的用户检索密码?

你可以使用独立的存储和存储的细节,但一般来说,存储密码有点击败整点不是吗?

+0

他们不是未经过身份验证的用户。他们已经认证,他们的会话应该保持20分钟。这就好比如果你退出gmail而没有点击“注销”链接,直接回到你不需要登录。这将随着时间的推移而过期。 – peter 2010-05-19 22:34:38

+0

这就是标准的ASP .NET页面的工作原理。用户将保持20分钟的身份验证。 – peter 2010-05-19 22:35:15

+0

另外,我传递给客户端的令牌存储在cookie中,并在20分钟后过期。 – peter 2010-05-19 22:36:34

相关问题