日期:2014-05-18  浏览次数:20568 次

用户登陆时,如何检测用户是否在线?如果在线则提示已经登陆
用户登陆时,如何检测用户是否在线?如果在线则提示已经登陆

------解决方案--------------------
session cookie 好象常用的只有这两个选择
如果我选 我就选cookie,因为session的话就总是要面对session过期的问题。
------解决方案--------------------
着是个老问题了

方法很多都不是最佳方案

还有可以通过数据库记录
------解决方案--------------------
我的看法是你可以看看微软解决此问题的思路。
下载一个SampleAccessProviders看看。
------解决方案--------------------
string skey = TextBox2.Text.ToString().Trim();
string suser = Convert.ToString(Cache[skey]);
if (suser == null || suser == string.Empty)
{
TimeSpan sessiontimeout = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
HttpContext.Current.Cache.Insert(skey, skey, null, DateTime.MaxValue, sessiontimeout, System.Web.Caching.CacheItemPriority.NotRemovable, null);
}
else if (Cache[skey].ToString() == skey)
{
ClientScript.RegisterStartupScript(GetType(), "提示 ", " <script> alert( '對不起,當前用戶已經登錄 ') </script> ");
return;
}
------解决方案--------------------
各有利弊 用session处理不当会网站很慢,cookie禁用的浏览器又用不了..
还有数据库和cache 不过我没用过
------解决方案--------------------
这个贴子还在?
------解决方案--------------------
可以 session,cookies,IP
session 可以自己指定有效时间
cookies 就不用考虑这点,但cookies 处理不好容易产生大量的缓存
IP 则是最精确的一个了,往往用于防止重复投票中使用
具体用什么楼主还要自己把握