|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来;显现|在线|在耳目数1、道理
在.net中的global.asax中有Application_AuthenticateRequest事务和Application_BeginRequest事务是在每次会见aspx文件城市触发。可是Application_BeginRequest中不克不及对已经由FROMS身份考证的身份ticket票举行辨认。以是只能放到Application_AuthenticateRequest中往。
我的完成道理是:每次会见aspx文件时分城市判别在线内外面是不是有这个用户(已登录了的纪录用户名,没有登录的纪录IP地点),假如不存在,则将该用户的身份、最初会见工夫、最初会见IP、和最初会见的URL存进数据库。假如数据库中已曾在,则更新该纪录,把最初会见工夫,IP和最初会见URL更新。
同时,删除数据库中与以后工夫距离20分钟以上的数据(20分钟没操纵当为超时)。
2、长处
如许,你不单单能够看到以后在线的正确人数,还晓得是那些人在线,和是不是上岸,和会见人数中已是会员的比例,和地点地位,并盘算某个页上的人数。
3、数据库布局:
主键字段范例长度是不是为空申明
1uson_serialint40序号
0uson_uservarchar200用户名(没上岸则为IP)
0uson_companyvarchar1000公司名(没上岸则为旅客)
0uson_ipvarchar200IP地点
0uson_datedatetime80最初操纵工夫
0uson_urlvarchar1000最初操纵页面路径
4、程序
注重:
1、程序位于global.asax中
2、我是利用的FORMS身份考证
3、请usingSystem.Web.Security
protectedvoidApplication_AuthenticateRequest(Objectsender,EventArgse)
{
stringstrUserID=string.Empty;
stringstrCompany=string.Empty;
if(Request.IsAuthenticated)
{
FormsIdentityidentity=(FormsIdentity)User.Identity;
FormsAuthenticationTicketticket=identity.Ticket;
strUserID=User.Identity.Name;
strCompany=ticket.UserData.Split("|".ToCharArray())[2];
}
else
{
strUserID=Request.UserHostAddress;
strCompany="旅客";
}
MemberOnlineInfoobjOnline=newMemberOnlineInfo(strUserID,Request.UserHostAddress,DateTime.Now.ToString(),Request.FilePath,strCompany);
MemberAccountaccount=newMemberAccount();
if(!account.CheckUserOnline(strUserID))
account.AddOnline(objOnline);
else
account.UpdateOnline(objOnline);
//删除超时的会员
account.DeleteOnline();
}
</p>问题是他们究竟是喜欢他们是使用软件时,速度快还是速度慢好.(当然在3秒以内).无论是他们输入资料时,查找资料时,分析资料时. |
|