asp.net 记录用户打开和关闭页面的时间

原创 2012年03月29日 10:31:24

记录打开页面时间:

在Page_Load事件里记录一下。

protected void Page_Load(object sender, EventArgs e){

    if (!Page.IsPostBack)
    {

          //记录用户打开页面时间
           Log_User_Time.SetUserTime(Session, Request, Request.Url.PathAndQuery, DateTime.Now, true);

    }

}

 

记录关闭页面的时间:

通过触发页面的onbeforeunload 事件,JS异步提到处理程序,记录时间。

    window.onbeforeunload = LogUserOutTime;
    var requestObj = null;
    function LogUserOutTime() {
        requestObj = getXMLHttpRequest();
        if (!!requestObj) {         
            requestObj.open("GET", "/LogUserOutTime.ashx", true);
            requestObj.onreadystatechange = reqend;
            requestObj.send(null);
        }
    }

    function reqend() {        
    }

    function getXMLHttpRequest() {
        var xmlRequestObj = null;
        try {
            if (window.ActiveXObject) {
                // Internet Explorer
                try {
                    xmlRequestObj = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    try {
                        xmlRequestObj = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {
                        throw e;
                    }
                }
            } else if (window.XMLHttpRequest) {
                // Firefox, Opera 8.0+, Safari
                xmlRequestObj = new window.XMLHttpRequest();
            }
        } catch (e) {
        }
        return xmlRequestObj;
    }

 

其它的代码:

LogUserOutTime.ashx 如下所示:

<%@ WebHandler Language="C#" Class="LogUserOutTime" %>

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.SessionState;
using nnbh.BaseComm.CommonClass;
using System.Text;

/// <summary>
/// 记录用户操作时间
/// </summary>
public class LogUserOutTime : IHttpHandler, IRequiresSessionState
{
    #region IHttpHandler 成员

    public bool IsReusable
    {
        get { return false; }
    }

    public void ProcessRequest(HttpContext context)
    {
        context.Response.Cache.SetNoStore();  //设置为不缓存     
       
        Log_User_Time.SetUserTime(context.Session, context.Request, context.Request.UrlReferrer.PathAndQuery, DateTime.Now, false);

        context.Response.Clear();
        context.Response.End();
    }

    #endregion
}

 

此方法在关闭页面和关闭浏览器时都会触发。

asp.net 使用cookies或者session实现浏览历史记录功能

cooies实现方式: 读取cookies存储数据 /// ///HistoryRestore 的摘要说明 ///最近浏览记录 /// publ...

ASP.NET MVC页面执行时间

1) 在我们的项目中添加一个类文件, public class PerformanceActionAttributeFilter : ActionFilterAttribute ...

七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

实验22——添加页脚 在本实验中,我们会在Employee 页面添加页脚,通过本实验理解分部视图。 什么是“分部视图”? 从逻辑上看,分部视图是一种可重用的视图,不会直接显示,包含于...

七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

本文主要介绍了ASP.NET MVC中页眉页脚的添加和Layout页面的使用,并实现了用户角色分配及Action Filter的使用...

ASP.NET读取DLL文件中的页面和用户控件(VirtualPathProvider VirtualFile)

这篇文章用来介绍一下如何通过VirtualPathProvider来获取程序集中的页面和用户控件的内容。这样做的好处是可以在项目中达到所有的文件路径是统一的,不管你的页面或者控件来自于任何一个程序集。...

ASP.NET用户登录后跳转到 登录前 的页面 url 跳转

在一般有用户登录的网站中,都会有需要用户登录后才能操作的页面,如果在用户登录后能跳转到之前的页面,就会给用户一个很好的体验,也能让他们更容易的浏览要操作的页面。这中间主要用到的是获取Url参数,获取后...

Asp.net 权限控制 利用用户控件include到页面

转http://www.cnblogs.com/YoursLan/archive/2010/10/08/1845698.html 引言     电子商务系统对安全问题有较高的要求,传统的访...

asp.net如何让未登录用户登录后能自动跳转到登录前访问的页面

http://q.cnblogs.com/q/35839/ 用这一种方法试试: Request.UrlReferrer.ToString(); 方法一:  在asp.net的aspx里面的源...

Asp.net利用事件委托,实现用户控件中的行为触发所在页面的处理函数

Asp.net利用事件委托,实现用户控件中的行为触发所在页面的处理函数 在日常的工作中,我们时常会遇到这样的需求:点击一用户控件中的服务器按 钮,变更页面上该用户控件以外某处的数据显示。这样就...

七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net 记录用户打开和关闭页面的时间
举报原因:
原因补充:

(最多只允许输入30个字)