ASP退出后才允许登录新用户?

来源:百度知道 编辑:UC知道 时间:2024/05/31 18:56:34
在login.asp页面可以登录,登录成功后,可以发布信息!
现在我想做个限制,如果user1已经登录了,再次进入到login.asp页面登录会被限制!
同一个用户又用user2登录则受限制,除非先把user1退出!

用Application变量可以实现.
会员登陆后修改application变量,比如我们用一个application("login")=true表示登陆了.那么登陆时就应该先进行一次的application("login")=ture
直到其退出后才会将其值修改为false.
当然登陆前先检查一下application("login")的值,若不存在或是false就可以让其进行登陆,否则做出限制跟转至错误提示页面.

而session只是一个单用户的级别,不合适用的.而session变量是其他用户根本取不到的.

剩下要考虑的是非正常退出等,如果user1直接关闭的浏览器,那么没有退出时进行修改application("login")的值,这时会发生所有用户都登陆不上的问题.这里要用到session_OnEnd事件进行一次的清除变量,这里面显然要加上application("login")=false或null这样的修改.但是还要把session.tiomeout时间设短一点,要不如果某用户关闭后要等很长的时间后才可能登陆的.但是过短又不行,如果太短的话,你的这个用户连一个填写表单完成的机会都没有,那么user2会抢先登陆进去的.显然,这里最好的办法就是增加一个提醒机制进行计时,比如我设的是十分钟,在登陆者的页面上会出现计时的,倒计至9分钟左右让其点一个按钮与服务器交互一下,这样计时器重新从十分钟开始计时.或者写一个小的自动请求服务的ajax,让其每隔1分钟向服务器发一次请求,这样时间你可以设置为略大于1分钟而保证在线者的不掉线,别人不能抢入,而其关闭后,显然1分钟后允许别人登陆.

过期页面的处理,如果一个用户在session时间内无任何服务器动作的话,可由别的登陆用户进行抢入,这时,也就是十分钟后,该页面进行了刷新操作,此时必须把这个用户进行一个过期处理.不能让其再进入,如果不加过期处理,此时会发生两个人同时在线的情况.

抢登陆,假定两地都有用户在同时抢登陆时,如果进行处理.user1登陆时发现application("login&qu