日期:2014-05-17  浏览次数:20457 次

ASP.NET防止一台机子多账号登陆和防止一账号多点登陆
传说中的用IP地址或者IP地址+端口号来记录用户登陆机子,我不解的是为什么不直接用MAC地址?
一般解决办法是,将地址信息记录到数据库中,并带有时间字段,用户在线时定时地更新数据库中时间字段信息,然后系统定时刷新数据库,将带有超时字段的元组删除。登陆时检索数据库,合法了才允许登陆上。
首先我不了解用户在线时如何定时地更新数据库时间字段,用定时器?每个账户都开个定时器好像不好吧。
其次我不了解系统定时刷新数据库的定时器和事件代码当放在哪里。
每个账户短时间内(系统时间性比较强)都会访问一下数据库,而且访问数据库属于IO操作,资源消耗不小,有人说放在内存里就好了,但用户数量大的时候内存占用又大……

------解决方案--------------------
探讨
传说中的用IP地址或者IP地址+端口号来记录用户登陆机子,我不解的是为什么不直接用MAC地址?

------解决方案--------------------
探讨
首先我不了解用户在线时如何定时地更新数据库时间字段,用定时器?每个账户都开个定时器好像不好吧。
其次我不了解系统定时刷新数据库的定时器和事件代码当放在哪里。

------解决方案--------------------
防不住 除了ip http协议的其他 都可以伪造

如果在来点 vpn ip就动态了;adsl在win7下拨号一次也只要几秒
------解决方案--------------------
每30秒每个用户,这样影响真的很多,特别是单个服务器,人多一点,都特别明显了,一般般的,都支持不了几百人
------解决方案--------------------
除非你有自己的客户端 这个客户端只能运行1个

浏览器和客户端通信》客户端和服务器通信 这样是可以唯一判断的

但是 已经背离你的asp.net了