如何显示在线人数和所在位置

显示|在线|在线人数

一、原理
在.net中的global.asax中有Application_AuthenticateRequest事件和Application_BeginRequest事件是在每次访问aspx文件都会触发。但是Application_BeginRequest中不能对已经经过FROMS身份验证的身份ticket票进行识别。所以只能放到Application_AuthenticateRequest中去。

我的实现原理是:每次访问aspx文件时候都会判断在线表里面是否有这个用户(已经登录了的记录用户名,没有登录的记录IP地址),如果不存在,则将该用户的身份、最后访问时间、最后访问IP、和最后访问的URL存入数据库。如果数据库中已经曾在,则更新该记录,把最后访问时间,IP以及最后访问URL更新。

同时,删除数据库中与当前时间间隔20分钟以上的数据(20分钟没操作当为超时)。

二、优点
这样,你不仅仅可以看到当前在线的准确人数,还知道是那些人在线,以及是否登陆,和访问人数中已经是会员的比例,以及所在位置,并计算某个页上的人数。

三、数据库结构:
主键 字段 类型 长度 是否为空说明
1uson_serialint40序号
0uson_uservarchar200用户名(没登陆则为IP)
0uson_companyvarchar1000公司名(没登陆则为'游客')
0uson_ip varchar200IP地址
0uson_datedatetime80最后操作时间
0uson_urlvarchar1000最后操作页面路径

四、程序
注意:
1、程序位于global.asax中
2、我是使用的FORMS身份验证
3、请using System.Web.Security

protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
string strUserID = string.Empty;
string strCompany = string.Empty;
if (Request.IsAuthenticated)
{
FormsIdentity identity = (FormsIdentity)User.Identity;
FormsAuthenticationTicket ticket = identity.Ticket;
strUserID = User.Identity.Name;
strCompany = ticket.UserData.Split("|".ToCharArray())[2];
}
else
{
strUserID = Request.UserHostAddress;
strCompany = "游客";
}

MemberOnlineInfo objOnline = new MemberOnlineInfo(strUserID, Request.UserHostAddress, DateTime.Now.ToString(), Request.FilePath, strCompany);

MemberAccount account = new MemberAccount();
if (!account.CheckUserOnline(strUserID))
account.AddOnline(objOnline);
else
account.UpdateOnline(objOnline);

//删除超时的会员
account.DeleteOnline();
}

时间: 2024-11-03 20:46:03

如何显示在线人数和所在位置的相关文章

三星Galaxy S5怎么在拍照时让照片上显示日期和所在位置

一.将GPS开启. (因为要用到定们功能所以我们需要打开gprs功能了, 1.先我们进入到手机的界面点击"应用程序"如图.   2.再者我们再找到应用中的"设定"按钮.   3.然后点击一下[更多]了,在下方会显示出一个[定位服务]了如下图红框所示.   4.现在我们把一个名叫[访问我的位置]选项打开,在此我们开启了会显示绿色开关了.    5.开的时间会弹出提示,我们点击[不同意].   然后我们就会看到下图我们会看到[使用GPS卫星]也将会默认勾选. 提示: 当

Galaxy S4拍照时如何显示日期和所在位置

一.将GPS开启. 1.在待机页面下,点击[应用程序]图标.   2.点击[设定]图标.   3.点击[更多],然后选择[定位服务].   4.将[访问我的位置]的开关键向右滑动.    5.若不需要使用无线网络进行辅助定位,请点击[不同意].   使其开启后[使用GPS卫星]也将会默认勾选. 以上操作完成后,即可开启GPS定位功能. 提示: 若您在使用GSP卫星时,搜索信号不是很好,无法进行定位.您可以将[使用无线网络]勾选,辅助您的手机进行定位.[使用无线网络]定位是需要网络支持.    

99%美国人对分享当前所在位置不感兴趣

北京时间8月31日早间消息,据国外媒体报道,Forrester Research最新一项研究显示,目前只有约4%的美国人尝试过某种类型的手机地理位置服务,而只有1%美国人每周使用Foursquare.Loopt或其他类似的应用. 这一研究结果表明,有99%的美国人对于通过手机分享当前所在位置不感兴趣.Forrester的研究结果还显示,在使用这些服务的用户中,有80%是男性,而70%是较为熟悉地理位置服务的.年龄在19至25岁之间的人. 目前大部分手机均支持定位功能,包括基站定位.完整GPS,和

JSP显示在线人数代码 (来自JSPCHINA)

js|显示|在线|在线人数 /*** 编写以下SessionCounter.java* 并编译为SessiionCounter.class* 然后放到你的网站的classpath的* SessionCount(自己建立此目录)下面*/ package SessionCount;import javax.servlet.*;import javax.servlet.http.*; public class SessionCounter implements HttpSessionListener

JSP显示在线人数代码

js|显示|在线|在线人数 /** * 编写以下SessionCounter.java * 并编译为SessiionCounter.class * 然后放到你的网站的classpath的 * SessionCount(自己建立此目录)下面 */ package SessionCount; import javax.servlet.*; import javax.servlet.http.*; public class SessionCounter implements HttpSessionLi

动态获取当前屏幕中光标所在位置的颜色

动态 ////////////////////////////////////////////////////////////////////////// /// 程序:屏幕取色 /// 功能:动态获取当前屏幕中光标所在位置的颜色 /// 作者:黎波 /// 网名:upto(阿球) /// 邮箱:itfun@163.com /// 日期:2004年3月31日 /////////////////////////////////////////////////////////////////////

jQuery往textarea中光标所在位置插入文本的方法

  本文实例讲述了jQuery往textarea中光标所在位置插入文本的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 <html> <

win7系统怎么修改当前所在位置?

  win7系统怎么修改当前所在位置? 1.首先,咱们单击开始菜单,然后在菜单中点击进入到控制面板的界面中,在控制面板中,咱们单击其中的"时钟.语言和区域"选项. 2.在接下来弹出的界面中,咱们就可以看到如下图中所示的界面了,咱们直接在区域和语言下方单击进入到更改位置. 3.之后弹出区域和语言的设置窗口,咱们将界面切换到位置这一栏,然后下面的当前位置就可以供我们操作更改了,大家想设置到哪个位置就直接在这里选择就是了.设置好之后记得点击下方的确定按钮保存哦.

jQuery往textarea中光标所在位置插入文本的方法_jquery

本文实例讲述了jQuery往textarea中光标所在位置插入文本的方法.分享给大家供大家参考.具体实现方法如下: <html> <head> <script src="jquery-1.8.1.min.js"></script> <script > $(function() { /* 在textarea处插入文本--Start */ (function($) { $.fn.extend({ insertContent : f