首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎么实现一个用户名只能一个人登陆

2012-01-26 
如何实现一个用户名只能一个人登陆在做WEB应用的时候用到了登陆功能,如何来控制当一个用户在使用用户名为A

如何实现一个用户名只能一个人登陆
在做   WEB应用的时候用到了登陆功能,如何来控制当一个用户在使用用户名为A   登录系统时,其它的用户不可以使用此用户名

[解决办法]
可以参考网络中dhcp的思路。在数据库中增加一个字段,时间的。
在线访问时,每次更新该字段。
设定判断的更新周期。如果重复登录,该值在有效周期内就不允许登录。这样可以解决客户端非正常退出的问题。
也可以把该值放在session中。
问题是,增加了系统,尤其是数据库的负担。如果结合session,在接近有效周期的结束时才更新数据库中的字段,来减轻数据库负担。
另外,需要考虑设置一个合理的“老化周期”。个人认为,合法用户长时间不操作,可以让他腾出“茅坑”,可以被踢出去(允许在另外的客户端上登录)。
[解决办法]
1.使用缓存记录用户在线列表,在线列表中保存每个在线用户:用户名,进入时间,最后访问时间,登入IP,最后访问地址等.
2.定义一个用户在线时长.如:5分钟,也就是说如果此用户在5分钟没有访问网站页面则将其算为离开.
3.用户登陆流程:
http://www.cnblogs.com/images/cnblogs_com/lzppcc/login.jpg
4.用户登入成功后,每访问一个页面.即按用户名,更新一下在线表中的最后访问时间,和最后访问网页地址.
5.使用定时器清除超过5分钟没有更新过的在线列表缓存中的用户.

热点排行