加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 我如何使用AJAX来确定用户的会话是否已过期,然后将其

发布时间:2020-12-15 19:55:47 所属栏目:asp.Net 来源:网络整理
导读:在下面的scenaio中,如何使用 AJAX检查会话是否仍处于活动状态,然后将用户返回到登录页面? 用户登录并开始工作 用户消失10分钟 并且会话超时 用户返回计算机 并且仍然在屏幕上 在10分钟前 用户提交他们的工作,但是 返回登录界面(通过 我现有的会话状态检查)
在下面的scenaio中,如何使用 AJAX检查会话是否仍处于活动状态,然后将用户返回到登录页面?

>用户登录并开始工作
>用户消失10分钟
并且会话超时
>用户返回计算机
并且仍然在屏幕上
在10分钟前
>用户提交他们的工作,但是
返回登录界面(通过
我现有的会话状态检查)和
这些变化不会持续存在

理想情况下,我所追求的是每1分钟检查会话状态以查看用户是否空闲的某种方式.如果它们处于空闲状态且会话即将到期,我会暂时保存更改,然后当会话到期时,我会在用户从空闲状态返回之前自动将页面更改为登录屏幕.

是否也可以在不使用setTimeOut()的情况下执行此操作?

解决方法

大多数,如果这可以在服务器端处理.

每当有服务器端用户活动 – 页面加载,ajax调用,无论如何,设置会话变量

Session["last_activty"]=DateTime.Now;

在您的AJAX调用和页面加载中(可以在需要身份验证的页面的母版页/嵌套母版页中执行此操作),检查(伪代码)

if (DateTime.Now-DateTime.Parse(Session["last_activity"]) > 10 minutes)
  Session["logged_in"]=false;

如果页面加载或webmethod / webservice方法基于以上内容确定用户已超时,则

a)重定向到登录页面(服务器端),或

b)将状态代码返回给ajax调用者,这将导致重定向或显示登录对话框.

注意:注意使用真实会话变量,因为它们往往在群集服务器环境中不能正常工作.这种类型的东西更适合你的数据库.

table Users
.ID
.last_activity datetime
.logged_in - calculated column which returns if GetDate()-LastActivity > 10 minutes.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读