如何从客户端脚本检测身份验证超时

how to detect authentication timeout from client script

本文关键字:检测 身份验证 超时 脚本 客户端      更新时间:2023-09-26

我有一个使用表单身份验证的 ASP.NET 应用程序,超时设置为五分钟。 在我的页面上,我有一个按钮,单击该按钮时,会对位于我的 .svc 文件中命名的服务上的操作进行 AJAX 调用。 我如何从客户端 javascipt 知道应用程序已超时? 或者,我如何在全局中检测到这一点;也许在application_beginrequest?

如果您谈论的是会话超时。 发生这种情况时,IHttpSessionState.IsNewSession 属性应设置为 true。

如果您指的是身份验证超时,则必须检查身份验证票证是否过期。

方法的变体:有一个单独的客户端脚本,该脚本首先通过请求一个特殊的页面/处理程序来检查身份验证过期,该页面/处理程序返回 JSON 结构以指示当前用户的身份验证状态。只有在知道用户仍处于活动状态后,您才会运行主 ajax 操作。这是另一个请求,但可以防止您将超时逻辑与主 ajax 逻辑纠缠在一起。您还可以在"警告,您的会话将在 x 分钟后超时"弹出窗口中单独使用。

有关如何设置它的更多详细信息,请参阅此问题和我的回答,但关键点是,如果您不希望检查过期以延长滑动过期,则必须将过期页面/处理程序配置为单独的虚拟目录,并使用 slideingExexpration=false 设置表单身份验证。