asp.net - ASP.Net 中的客户端 session 超时重定向

标签 asp.net session timeout forms-authentication

我想构建一种在 session 因不活动而过期时自动将用户重定向到 Timeout.aspx 的方法。我的应用程序使用表单例份验证,并且严重依赖同一 aspx 页面中的更新面板进行用户交互,因此我不想在页面级计时器到期后简单地重定向。出于同样的原因,我不能使用 ''

我想要做的是创建一个简单的 ajax Web 服务,使用一个名为 IsSessionTimedOut() 的方法,它只返回一个 bool 值。我将使用一个javascript计时器来定期调用该方法,如果它返回true,则重定向到Timeout.aspx。但是,我不想调用此方法来重置 session 超时计时器,否则 session 将永远不会因为服务调用而超时。有没有一种干净的方法来避免这种catch-22?希望有一个简单的解决方案,到目前为止我还没有找到。

最佳答案

问题的症结在于,在 AJAX 应用程序中,为了提供强大的用户体验,您必须使用大量代码检查每个调用的状态并确定失败是否是由于过时的 session /票证导致的。通过积极主动的方法,您的客户端脚本可以大大简化,同时提供更好的用户体验。

我专门为这个问题建立了一个解决方案。

它允许交互式 session 和表单生命周期审计没有 碰撞 session 或票证。

多个浏览器/选项卡没问题。

忘记防晒霜;记住:在做 Ajax 时,要积极主动——你应该放弃一个 session ,一个 session 不应该放弃你 ;-)

AsynchronousSessionAuditor 1.0

关于asp.net - ASP.Net 中的客户端 session 超时重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2852121/

相关文章:

php - 多个选项卡,多个 while

javascript - Express js session--只为登录用户创建

python - VS Code Python 调试器 "timed out waiting for debuggee to spawn"

java - JUnit4 - 'same' 测试用例的不同超时

c# - CsvHelper 在糟糕的日期上呕吐(关于使用 Configuration.Seed() 进行的 EF 迁移)

c# - 如何将变量连接到某些 <asp : . ./> 属性中?

asp.net 允许未经授权查看单个页面

c# - 自动将 Interface<T> 解析为 StructureMap 中的 Implementation<T>(仅泛型类型 T 不同)

c# - NHibernate 工作单元 - 多 session (WinForms)

spring - AWS Elastic Beanstalk - 配置我的 nginx 设置以增加 Java Spring maven 应用程序的超时