论坛登陆 注册 教程 笑话 影视 投稿
首页 | 页界资讯 | 网络应用 | 软件应用 | 组网技术 | 网络原理 | 聊天通讯 | 网管知识 | 帮助
笑话 | 操作系统 | 注 册 表 | 编程开发 | 数 据 库 | 媒体动画 | 网页设计 | 图形图象 | 地图
论坛 | 网络安全 | 安全防范 | 服 务 器 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
影院 | 教育频道 | 特色专题 | 精文荟萃 | 注 册 码 | 论坛社区 | 网站地图 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>编程开发>>net专区>>正文

用ASP.NET显示在线登陆人数及位置

www.xker.com 作者:子扬 来源:25bz 加入日期:2006-3-30 7:27:06

【问题提问、论坛交流】一、原理

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

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

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

二、优点

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

三、数据库结构

字段 类型 长度 说明
1uson_serial int 40 序号
0uson_user varchar 200 用户名(没登陆则为IP)
0uson_company varchar 1000 公司名(没登陆则为'游客')
0uson_ip varchar 200 IP地址
0uson_date datetime 80 最后操作时间
0uson_url varchar 1000 最后操作页面路径



四、程序

注意:

1、程序位于global.asax中

2、使用的FORMS身份验证

3、请使用 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();

}

编辑:xker.com

上一篇:ASP.NET缓存:方法分析和实践示例
下一篇:没有了
关闭窗口】【技术交流】【收藏此页
相关文章
·ASP.NET缓存:方法分析和实践示例·在ASP.NET 中为图像加入版权信息·用Asp.net实现简单的文字水印
·在Apache环境下成功的运行ASP.NET·ASP.NET 2.0 中的数据源控件·ASP.NET程序数组功能调用
·ASP.NET环境的安装·ASP.NET热点问题解答14个·ASP.NET的Session详解
·asp.net窗体的打开和关闭 ·ASP.NET的性能·ASP.net简介
·动态加载类的原理——元数据的使用·ASP.NET应用程序规划与设计·ASP.NET创建Web Services之概述
推荐文章 最新文章 热门文章
·在Linux3.0下安装DB28.2
·选购液晶牢记三大注意事项
·详解TCP端口:作用,漏洞,操作详析
·从此不再心头痛 数据库连接方法总结
·网络应用技巧 用注册表强化网上邻居
·JMX+J2SE5.0实现Web应用的安全管理
·小工具大用处 让网吧线路可以自由切换
·C#利用Web Service实现短信发送
·用VB6.0实现网络实时监控系统
·MP4播放器玩转字幕—— 从Sub到Srt
·JAVA 与.NET 在前途上面的比较
·AJAX+JSF组件实现高性能的文件上载
·自己制作带农历的年历
·全面分析Java的垃圾回收机制
·3DMAX打造宇宙中遥望美丽的地球
·用ASP.NET显示在线登陆人数及位置
·SQL Server 2000企业版安装说明
·用乐至尊 玩转影视文件更轻松
·下载:IE最新高危漏洞非官方补丁
·在Linux3.0下安装DB28.2
·防忽悠 远离BIOS升级三个误区 
·亲手解决MP3音乐和超级兔子间的冲突
·教你制作QQ空间MTV播放器
·分析:Windows为何越走越慢?
·Excel技巧 为数据区域创建非图形图表
·拒绝骚扰 关闭XP SP2中的安全中心提示
·选购液晶牢记三大注意事项
·ASP.NET缓存:方法分析和实践示例
·在ASP.NET 中为图像加入版权信息
·用Asp.net实现简单的文字水印
·个人简历表格
·免费代理IP(每日更新)
·QQ收费头像免费使用的方法 
·QQ密码丢失后能做的事情:快速找回密码
·Norton AntiVirus 2006 注册码(激活
·系统优化 专题
·豪杰超级解霸V9.1正版注册码
·WinRAR 3.51 注册码
·找回QQ密码的注意事项 
·史上最强QQ个人档案资料欣赏
·Ajax技术开发指南
·最经典的黑客入门教材
·QQ空间皮肤代码
·求职简历封皮
·ACDSee v8.0注册码
评论

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2006 xker.com All rights reserved.小新技术网 合作广告QQ:12231446
本页浏览次数: