ASP.NET 2.0防止同名用户同时登陆
想单点登录,我们可以使用SessionID和数据库结合。
使最后一个登录的人可以正常操作,而以前登录的人都会被踢出
首先建立登录信息表 SYS_LOG
字段
log_UserAccount 用户名
sessionID 客户端SessionID
接下来是程序的部分
用户A以用户名"MCMC"登录的时候,保存登录记录
string SID=Session.SessionID; //生成SessionID
然后执行
insert into SYS_LOG(log_UserAccount,sessionID) values ('MCMC','" + SID + "')
接下来,在进行每次操作的时候 先去登录表中查找最后一条 log_UserAccount='MCMC'的记录的sessionID字段
SELECT top 1 SYS_LOG.sessionID FROM SYS_LOG WHERE SYS_LOG.log_UserAccount='" + userid + "' order by logintime desc
====================================================================
如果返回记录集的 [sessionID]与当前IE窗口的 SID=Session.SessionID相同
那么就是说目前没有同名账户登录,A可以继续操作
接下来如果B也以"mcmc"登录,那么B也在登录表插入了新的登录信息
两条登录信息唯一差别就是 SID=Session.SessionID;的值不同,
那么
A此时操作时候,返回记录集的 [sessionID]与当前IE窗口的 SID=Session.SessionID就不再相同,
那么就是说目前有同名账户登录,A不可以继续操作,可以Session.Abandon();干掉自己,提示有新用户登录,跳转页面
此时B返回记录集的 [sessionID]与当前IE窗口的 SID=Session.SessionID相同
那么就是说目前没有同名账户登录,B可以继续操作
==================================================
原理是 用户名是可以相同的 但是SessionID每个IE窗口是唯一的
当在数据库中发现用户名是自己但是SessionID不是自己的话,先登录的用户就干掉自己,保证只能最后同名用户能正常操作
- 点赞
- 收藏
- 分享
- 文章举报
- ASP.NET 2.0关于用户登录限制问题实例:防止同一用户同时登陆
- ASP.NET 2.0防止同一用户同时登陆
- 【转】ASP.NET 2.0防止同一用户同时登陆
- ASP.NET 2.0防止同一用户同时登陆方法一(转)
- ASP.NET 2.0防止同一用户同时登陆
- ASP.NET 2.0防止同一用户同时登陆
- ASP.NET 2.0防止同一用户同时登陆方法二(转)
- ASP.NET 2.0防止同一用户同时登陆方法三(转)
- asp.net 2.0防止同一用户同时登陆
- [导入]ASP.NET 2.0防止同一用户同时登陆
- ASP.NET 2.0防止同一用户同时登陆
- ASP.NET 2.0实现防止同一用户同时登陆
- ASP.NET 2.0 防止同一用户同时登陆的方法
- asp.net 2.0防止同一用户同时登陆
- ASP.NET 2.0防止同一用户同时登陆
- ASP.NET 2.0防止同一用户同时登陆
- asp.net 2.0防止同一用户同时登陆
- asp.net 2.0防止同一用户同时登陆
- ASP.NET 2.0防止同一用户同时登陆(cache的应用)
- ASP.NET 2.0防止同一用户同时登陆