如何防止同一帐户重复登录系统

原创 2004年09月27日 17:28:00
如何防止控制客户端使其用同一帐户重复登录系统.

解决思路:

维护一online表,查看有登陆,就不允许再次登陆,以sessionid作为唯一标识符号,也可以产生一个GUID发到COOKIE中,以区分不同的CLIENT,再佐以JS,可以达到更好的效果,比如离开后自动离线

解决代码:

public virtual void Application_Start(object sender, EventArgs e)
{
// reset the mailer indicator
Application["MailerStatus"] = "All Mailings Complete";

// initialize a datatable for users online
DataTable objUserTable = new DataTable();
objUserTable.Columns.Add("SessionID",System.Type.GetType("System.Guid"));
objUserTable.Columns.Add("PeopleID",System.Type.GetType("System.Int32"));
objUserTable.Columns.Add("ShowDetail",System.Type.GetType("System.Boolean"));
DataColumn[] pk = new DataColumn[1];
pk[0] = objUserTable.Columns[0];
objUserTable.PrimaryKey = pk;
Application["UserTable"] = objUserTable;
}

///


/// The Session_Start event adds user session information to
/// Application["UserTable"].
///

public virtual void Session_Start(object sender, EventArgs e)
{
Application.Lock();
//Application.Lock ();
DataTable objUserTable = (DataTable)Application["UserTable"];
DataRow objRow = objUserTable.NewRow();
Guid objGuid = Guid.NewGuid();
objRow[0] = objGuid;
Session["PfSessionID"] = objRow[0];
objRow[1] = 0;
objRow[2] = false;
objUserTable.Rows.Add(objRow);
Application["UserTable"] = objUserTable;
Application.UnLock();
}


///


/// The Session_End event deletes user session information from
/// Application["UserTable"].
///

public virtual void Session_End(object sender, EventArgs e)
{
Application.Lock();
DataTable objUserTable = (DataTable)Application["UserTable"];
objUserTable.Rows.Find((Guid)Session["PfSessionID"]).Delete();
Application["UserTable"] = objUserTable;
Application.UnLock();
}

如何防止同一帐户重复登录系统

如何防止控制客户端使其用同一帐户重复登录系统. 解决思路:维护一online表,查看有登陆,就不允许再次登陆,以sessionid作为唯一标识符号,也可以产生一个GUID发到COOKIE中,以区分不同...
  • real0411
  • real0411
  • 2005年02月03日 14:58
  • 624

如何防止同一帐户重复登录系统(ASP.net)

[转帖]如何防止同一帐户重复登录系统(ASP.net)如何防止控制客户端使其用同一帐户重复登录系统. 解决思路:  维护一online表,查看有登陆,就不允许再次登陆,以sessionid作为唯一标识...
  • xcjwxx
  • xcjwxx
  • 2008年01月04日 13:02
  • 274

如何防止同一帐户重复登录系统(ASP.net)2

本例完成的功能就是防止用户重复登录!若用户已经登录,则当其再次登录时,弹出提示框后返回!实现思路:用户登录成功后,将用户登录信息存放到Hashtable类型的Application["Online"]...
  • xcjwxx
  • xcjwxx
  • 2008年01月04日 13:07
  • 455

利用cache防止同一帐户重复登录

 需求概要 对于B/S应用系统中客户经常会提出同一帐号不能重复登录的需求,就是说,用某一帐号登录系统后,在系统不超时的情况下,任何人都不能再用目前已登录的帐号登录系统。包括我目前的项目中同样有这一需求...
  • jhrokin
  • jhrokin
  • 2008年09月23日 14:31
  • 254

Java Web防止用户重复登录(同一用户同时登录)的一种实现方案

1.思路在Java web项目中,有时需要防止用户重复登录,解决方案有多种。 这里给出一个简单的解决方案:在处理登录的login方法中,先查询数据库验证下该用户是否存在,如果存在 判断该登录账户是否...
  • chengyuqiang
  • chengyuqiang
  • 2017年09月28日 11:11
  • 1658

防止用户多次登录的两种做法

1  可以放到redis 缓存里面维护一个在线用户列表  可以用这个用户id 为key  的一个结构比如set,  在登录的时候或者退出的时候维护这个结构,(一些监听sesson类似方法2) 并且设上...
  • AlbertFly
  • AlbertFly
  • 2016年05月10日 21:26
  • 1093

PHP session 防止重复登录

zhclass.php
  • A289672082
  • A289672082
  • 2016年07月09日 19:25
  • 2054

利用Cache防止同一帐号重复登录 (c#)

需求概要 对于B/S应用系统中客户经常会提出同一帐号不能重复登录的需求,就是说,用某一帐号登录系统后,在系统不超时的情况下,任何人都不能再用目前已登录的帐号登录系统。包括我目前的项目中同样有这一需求。...
  • a9529lty
  • a9529lty
  • 2008年01月02日 17:06
  • 3719

在tp中实现单个用户禁止重复登录

原理: 权限验证的时候一定要判断数据库写入session_id是不是和$_session里面的session_id是不是一致,如果不一致就退出,这个防止同一个账户被多个人同时登陆的实现方法就是基于这...
  • zhangweiguangsunjiao
  • zhangweiguangsunjiao
  • 2017年06月20日 16:23
  • 503

问题:asp.net如何防止用户用同一账号重复登录

在登录按钮上设定将当前登录用户id存到一个测试2的表中,在用户点击“退出”时删除它。但是如果用户没按“退出”直接关闭浏览器,Session_End为什么不工作呢?下面是Session_End里的代码。...
  • chenny2004
  • chenny2004
  • 2004年10月20日 11:09
  • 1145
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何防止同一帐户重复登录系统
举报原因:
原因补充:

(最多只允许输入30个字)