2014-02-20 56 views
0

我使用FormsAuthentication超时 - 检查在JavaScript或JQuery的

`FormsAuthentication.SetAuthCookie(userName, model.RememberMe);` 

创造MVC一个表单认证和控制器中我们使用[授权]属性,以确保用户会话是有效的,没有过期。当用户从一个页面移动到另一个页面时,效果很好。如果Cookie过期,则会再次显示登录页面。

问题在于使用Ajax调用服务器(控制器)的页面(控制板)每隔几分钟刷新屏幕上的某些项目。

根据公司政策,我们不能让会议超过30分钟。因此,如果此页面保持打开30分钟并且会话过期,我们希望重定向到登录页面。 当前,如果会话过期,该页仍然保持原样,但不再刷新,然后用户抱怨他们无法查看数据。当然,他们可以再次看到它,一旦他们刷新页面,但有什么办法使用,我可以找到使用JQuery或Java脚本是FormsAuthentication饼干已经过期

+0

您是否尝试过只使用setTimeout的JavaScript方法,并在写一个简短的函数JavaScript查找超过给定时间的静态页面? – TimPalmer

回答

1

当然,他们可以再次看到它,一旦他们刷新页面但 有使用,我可以找到使用JQuery或Java的脚本 FormsAuthentication饼干已经过期

是的,你可以在任何方式。 Phil Haack写了一篇非常好的博客文章,解释了如何防止Forms Authentication模块简单地重定向到登录页面,而是返回401客户端状态码,您的客户端AJAX调用可能会捕获并使用window.location.href手动重定向到登录页面。

http://haacked.com/archive/2011/10/04/prevent-forms-authentication-login-page-redirect-when-you-donrsquot-want.aspx/

他还写了一的NuGet称为AspNetHaack,你可以使用,如果你有兴趣浏览源代码在这里:https://github.com/Haacked/CodeHaacks/tree/master/src/AspNetHaack

相关问题