FormsAuthentication Timeout - Check in JavaScript or JQuery



我正在使用 MVC 中创建表单身份验证

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

在控制器中,我们使用 [授权] 属性来确保用户会话有效且未过期。当用户从一个页面移动到另一个页面时,它运行良好。 如果 Cookie 已过期,则登录页面将再次显示。

问题出在一个页面(仪表板)上,它使Ajax调用服务器(控制器)以每分钟刷新屏幕上的某些项目。

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

当然,一旦刷新页面,他们就可以再次看到它,但是 我可以使用JQuery或Java脚本找到任何方法 表单身份验证 Cookie 已过期

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

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

他还编写了一个名为AspNetHaack的NuGet,您可以使用它,如果您有兴趣,请在此处浏览源代码:https://github.com/Haacked/CodeHaacks/tree/master/src/AspNetHaack

最新更新