如何检测同一账号的重复登录
来源:互联网 发布:顺科洗衣软件 编辑:程序博客网 时间:2024/04/27 22:49
以前做过的系统中似乎一直忽略了这个问题,今天上csdn的时候看到有人提了这么个问题,恍然大悟。想到金融、影院、远程教学、甚至QQ(用的是单点登录机制,后一个登录的会强迫前一登录的下线)都有类似的功能,这对他们来说是起码的要求,否则N多个人只买一个帐号然后同时登录,那不亏死了。
这问题我的第一反应就是在数据库中填加一个Flag字段,登录的时候修改为“1”退出的时候重新设置为“0”
大家想一下,这样会不会有问题呢?增加数据库服务器的压力不说,要是用户是非正常退出怎么办?比如断电、死机等不可预知的事件。那么数据库中Flag字段将会一直是“1”, 也就是说这个帐号从此作废。当然你可以在程序部分做一些规定,避免类似的事件,但总体感觉这样不是很好。
还有个想法是:在Global文件中的Application_Start()方法中设置:
思路是这样:当用户登陆时,先判断online中是否将登陆的用户名记录,如果记录了则判断此用户是否超时.没有超时则提示信息,用户已经登陆.超时则清除online中当条的记录.并记录它.然后用记每跟服务交互一次,则更新Rule中的时间 代码如下:
Hashtable online=new Hashtable();
this.Context.Cache.Insert("online",online);
online中储存的是已登陆的用户,online的Key为SessionID,值将包含另一个对象
Rule中,下面是Rule代码
class Rule
{
private string _userName;
private DateTime dtTimeOut;
public UserName
{
set{}get{}
}
......
}
还有个方法是利用cache机智:
string key = TextBox1.Text; //用户名文本框设为cache关键字
string uer = Convert.ToString(Cache[key]); //读取cache中用户相应的值
//判断cache中是否有用户的信息,如果没有相关的值,说明用户未登陆
if (uer == null uer == String.Empty)
{
//定义cache过期时间
TimeSpan SessTimeout = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
//第一次登陆的时候插入一个用户相关的cache值,
HttpContext.Current.Cache.Insert(key, key, null, DateTime.MaxValue, SessTimeout, System.Web.Caching.CacheItemPriority.NotRemovable, null);
Session["ADMINID"] = TextBox1.Text;
Response.Redirect("main.ASPx");
}
else
{
//重复登陆
Response.Write(" <script >alert( '您的账号已经登陆! ');window.location= 'login.aspx '; </script >");
}
- 如何检测同一账号的重复登录
- 问题:asp.net如何防止用户用同一账号重复登录
- 如何防止同一帐户重复登录系统
- 如何防止同一帐户重复登录系统
- 如何防止同一帐户重复登录系统
- 如何防止同一帐户重复登录系统
- 如何防止同一帐户重复登录系统
- 如何做到同一个账号同一时段只能登录一个
- 如何防止同一帐户重复登录系统(ASP.net)
- 如何防止同一帐户重复登录系统(ASP.net)2
- 如何有效防止同一账户去重复登录系统
- 防止同一用户重复登录
- 判断账号重复登录 网站
- 同一账号同一时间只能登录一次
- 动态网站异地同一账号登录测试
- 关于B/S架构下,如何让同一账号不能多次登录
- 关于B/S架构下,如何让同一账号不能多次登录
- 关于B/S架构下,如何让同一账号不能多次登录
- 雷军谈金山八年上市磨难
- SQL Server 存储过程的分页方案比拼
- 一些常用正则表达式
- U盘病毒和Autorun.inf文件分析
- 上传文件到FTP
- 如何检测同一账号的重复登录
- gridview导入excel时出错?
- 使用harrTraining进行电池的识别实验
- 仿163信箱的alert提示,带效果预览图,弹出层
- FileUpload控件预览图片
- C++语法概括
- java中的访问修饰符及使用范围
- [转]新手怎么学习asp.net
- 程序员为什么单身?细数程序员"六宗罪"