日期:2014-05-19  浏览次数:20490 次

面试紧急求助--怎么防止多处登陆
就是网站同时只能有用户在一个机器登陆,如果他在其他机器登陆就提示该帐号已经使用,或者把哪个已经登陆的帐号踢下。

------解决方案--------------------
将用户登录号,ip记录在application中.登录时检查.
------解决方案--------------------
不知道同时检查IP+Account行不行。
------解决方案--------------------
数据库表中 应该设置IP这样的字段
登录时候 先判断是否为这个IP
如果不是更新对于User的 这个IP为登录ip



------解决方案--------------------
方法多多 单一登录 问题
------解决方案--------------------
登录时插入到库里Session的id值+时间
------解决方案--------------------
我用的是在数据库中有一个用户名,用来记录用户的上线信息。用户上线时先判断此表是否有此人,如果有,就提示它有人登录,五分钟后登录,这时,你就把此表中的此用户删除掉。
你在每一个页面中都要判断此用户表中的用户是否为空。如果为空就踢掉它
------解决方案--------------------
用户在局渔网 ip一样怎么办 ==================> 那就不能按ip来分. 不管ip,只要application存在这个登录号,就剔除它.
------解决方案--------------------
可以再取 用户的机器名 用于判别
试试
public static string getUserHostName()
{
return HttpContext.Current.Server.MachineName.ToString();
}
------解决方案--------------------
听墓白兄的话
------解决方案--------------------
剔除怎么搞?定期刷新? =====> 可以将用户的session保存在application中. 直接操作那个session application[ "User1 "] = Session;
------解决方案--------------------
不需要操作客户端,让session过期就可.
------解决方案--------------------
session.Settimeout = 1
1分钟失效
------解决方案--------------------
把用户的登录信息保存在Cache中,并设置过期时间为Session失效的时间,因此,一旦Session失效,我们的Cache也过期
------解决方案--------------------
session[ " "]=null
------解决方案--------------------
cpp2017(慕白兄) ( ) 信誉:100 Blog 2007-4-2 16:25:17 得分: 0



将用户登录号,ip记录在application中.登录时检查.




正解
------解决方案--------------------
把当前用户的session置空..
------解决方案--------------------
string sUser = Convert.ToString(Cache[sKey]);
// 检查是否存在
if (sUser == null || sUser == String.Empty)
{
TimeSpan SessTimeOut = new TimeSpan(0,0,System.Web.HttpContext.Current.Session.Timeout,0,0);
HttpContext.Current.Cache.Insert(sKey,sKey,null,DateTime.MaxValue,SessTimeOut,
System.Web.Caching.CacheItemPriority.NotRemovable,null);
Session[ "User "] = sKey;
// 首次登录 }
else
{
Response.write( "抱歉,您好像已经登录了呀 ");
}

------解决方案--------------------
我汗,上面一堆星星说IP。

进程内Cookie,或者直接用Session,也没必要往Session里面赋值,直接做个SessionID与用户名对应的Hashtable,每一次检查一下SessionID和用户名是否匹配就完了。每一次由用户登录,就把SessionID和用户名放到这个Hashtable中,如果用户在别处登陆,那么新写入的数据就会覆盖原来的数据,自然就把原来的用户给踢掉了……

真的是服了……
------解决方案--------------------
前几天刚开发一个,和Ivony想法一样的,
顶一个先
------解决方案--------------------