Silverlight WCF RIA - 身份验证超时

时间:2013-03-13 13:38:49

标签: silverlight wcf-ria-services

我有一些关于SL身份验证的问题。

我正在使用WCF RIA Services来访问数据库并实现身份验证和读/写数据到数据库。现在,我有自定义身份验证服务和自定义角色提供程序(coz没有最后一个数据库返回异常)。在Roles Provider类中,我只实现了一个方法“ IsUserInRole(string username,string roleName)”。我不知道为什么,但项目没有使用所有其他方法。

1。 web.config 文件中,我有下一个有关身份验证的文字:

<authentication mode="Forms">
    <forms name=".ASPXAUTH" timeout="1440"/>
</authentication>

我设置了超时1440(同时身份验证Cookie的到期日期为+30天)。但无论如何,应用程序在 6-7分钟的空闲时失去了身份验证为什么??? 我也没有在托管设置中找到任何类似的偏好。

2。现在,通过Fiddler 2我可以看到奇怪的cookie设置(仅在获取数据库信息时):

Set-Cookie: .ASPXROLES=; expires=Tue, 12-Oct-1999 04:00:00 GMT; path=/; HttpOnly

我试图找到放置此cookie的类或方法,但我没有找到任何内容。就像“幻影”cookie -_-...我认为,这是我认证超时的主要问题之一。 它是什么以及如何更改?

3。我找到了很好的解决方案(Silverlight RIA Services - How To Best Handle Client Auth Session Timeout?),但它可以帮助我捕获异常。如果我使用下一个方法:

WebContext.Current.Authentication.LoadUser(Application_UserLoaded, null);

在应用程序启动时,一切似乎都没问题,用户身份从cookie加载。但!如果我将在6-7分钟的空闲后尝试使用此方法,则应用程序在A MAGIC WAY中将导航页面更改为“LoginPage”。我不知道,也没有任何想法如何做到这一点。但这是真的。我在页面“桌面”。然后我尝试在空闲后“重新”用户,框架更改为不同的页面,所有数据(来自之前的页面)都是LOST ... :(所以,为什么“LoadUser”方法会在登录窗口中将我转到不同的页面,为什么它不只是重新登录用户身份?

0 个答案:

没有答案
相关问题