关于如何禁止同一用户在同一时间在不同机器重复登陆的问题我是这样想的,如果有不对的地方还请各位指正,大伙共同探讨。
主要想在Application级解决问题。不用数据库的原因是,用数据库判断是否登陆非常耗费系统资源,用Application可以解决资源耗费的问题。
总体思路是设定用户活动时间和超时时间,如果用户在指定的超时时间内没有活动的话,就认为该用户已经离线,或者非正常下线(比如断电)。当用户退出浏览器,触发Application_unload事件,可以在global.asa中设置;或者用javascript+ajax判断并执行退出操作也可以,退出的时候执行Application清空操作,如果是用javascript判断退出,就要用ajax执行Application清空操作。下面是我的主体思路流图。