我网站的登陆处理cookie代码:
FormsAuthentication.SetAuthCookie(userName, true);
HttpCookie cookie = new HttpCookie("login");
cookie.Values.Add("name", userName);
cookie.Expires = DateTime.Now.AddDays(30);
System.Web.HttpContext.Current.Response.AppendCookie(cookie);然后我现在判断用户是否登陆的代码是:
//如果网站没有登陆。
if (System.Web.HttpContext.Current.Request.IsAuthenticated == false)
{
}
现在的问题是,这样只能判断用户自己是不是登陆,我想要让任何用户都可以看到别的用户是否在线,该用什么代码来判断?
FormsAuthentication.SetAuthCookie(userName, true);
HttpCookie cookie = new HttpCookie("login");
cookie.Values.Add("name", userName);
cookie.Expires = DateTime.Now.AddDays(30);
System.Web.HttpContext.Current.Response.AppendCookie(cookie);然后我现在判断用户是否登陆的代码是:
//如果网站没有登陆。
if (System.Web.HttpContext.Current.Request.IsAuthenticated == false)
{
}
现在的问题是,这样只能判断用户自己是不是登陆,我想要让任何用户都可以看到别的用户是否在线,该用什么代码来判断?
你用Session保存登录的用户
然后每隔20分钟刷新一下
看下用户是否在线
然后生成一个视图,按20分钟内活跃的用户为在线用户作为条件,筛选出用户
这个视图就是在线用户名单列表
然后下面的步骤你就会怎么做了把
谢谢,我想问下,这样就需要经常的读写数据库 和session相比哪个对服务器的负荷比较大?
参考
http://www.cnblogs.com/kokoliu/archive/2008/01/25/618140.html
http://www.cnblogs.com/kokoliu/archive/2007/01/11/618144.html
登录了后把该状态改为true,退出或者注销改为false
定时检查一下
看你的数据库服务器,web服务器硬件配置如何了,
基本上,数据操作每次用户登录都要进行数据更新,可以通过建索引的方式加快操作,主要负载加到了数据库服务器上
而session的方式,主要负载是在Web服务器。
相比而言,session的方式相对系统负载要大一些。因为数据库可以通过cache的方式
不必次次进行实时计算统计,而session的方式则基本每次都需要。
方法么 你可以存在Application变量里面 也可以存在数据库里面。