读书人

网站怎么记录和显示用户浏览过的资源记

发布时间: 2012-03-18 13:55:39 作者: rapoo

网站如何记录和显示用户浏览过的资源记录
asp.net c#
我需要完成的功能如下
1、当用户进入网站浏览资源时,记录下用户浏览过的资源
2、当用户下次再到网站浏览资源时,显示出用户上次访问浏览过的资源记录
高手请解,如何实现上述功能,另外大家觉得用什么介质存储用户浏览记录好,是cookie,还是数据库;当然,本人希望有人能告诉我有没有第三种更好的选择

[解决办法]
当然是数据库好,用户有可能禁用Cookie或者清理掉Cookies
提供一种思路,定义一个ViewTimes结构,保存各个页面(资源)的浏览情况,将此结构序列化为字节存进数组,为了提升性能,可以在Application_EndRequest事件中一次性写入数据库,并在Application_BeginRequest事件中初始化上面的结构(从数据库读取),甚至可以定义在MembershipProvider验证的时候一并读取数据,并自定义一个实现接口IPrincipal的类存放ViewTimes结构,可以跟Name等属性一并读取,是不错的思路

C# code
[Serializable]    struct ViewTimes    {        public int DefaultAspx;        public int GameAspx;    }    protected void Page_Load(object sender, EventArgs e)    {        if (this.User.Identity.IsAuthenticated)//是否通过验证        {            //获取用户名            string name = this.User.Identity.Name;            ViewTimes vt = new ViewTimes();            vt.DefaultAspx = 1;//给结构赋值,表示读取了资源            vt.GameAspx = 2;            BinaryFormatter bs = new BinaryFormatter();            MemoryStream ms = new MemoryStream();            bs.Serialize(ms, vt);//序列化为字节流            byte[] buffer = ms.ToArray();转换为字节数组,此数组对应数据库Image格式字段            //insert into data(viewtimes) values(buffer)更新数据库        }    }
[解决办法]
自定义模块加入,用此模块截获所有用户请求信息分析其URL,有效就++,无效就不处理,这样不用在每个页面加函数了,不用的时候在配置文件中取消模块注册就实行功能的卸载了

读书人网 >C#

热点推荐