用cookies
来的时候用cookies记录时间,离开的时候又记录时间,两个时间差就是了

解决方案 »

  1.   

     Session_Start:记录开始时间
    Session_End:记录结束时间
    访问时间=结束时间-开始时间
      

  2.   

    session,cookies记录的只是一个大概的时间,不能准确的记录用户在线时间
      

  3.   

    要统计在线访问和历史访问人数吗?
    protected void Application_Start(Object sender, EventArgs e)
    {
    //绑定数据库,从数据库中读出历史访问人数.
                          SqlConnection con=DB.createConnection();
      con.Open();
      SqlCommand cmd=new SqlCommand("select * from countPeople",con);
      int count=Convert.ToInt32(cmd.ExecuteScalar());
      con.Close();
             Application["total"]=count;
     Application["online"]=0;
    }
     
    protected void Session_Start(Object sender, EventArgs e)
    {
    //设置过期时间
                       Session.Timeout=1;
     Application.Lock();
    Application["total"]=(int)Application["total"]+1;
    Application["online"]=(int)Application["online"]+1;
    Application.UnLock();
    }
                protected void Session_End(Object sender, EventArgs e)
    {
                      Application.Lock();
    Application["online"]=(int)Application["online"]-1;
    Application.UnLock();
    } protected void Application_End(Object sender, EventArgs e)
    {
    //完毕的时候将历史访问人数写入数据库.
                  SqlConnection con=DB.createConnection();
     con.Open();
    SqlCommand cmd=new SqlCommand("update countPeople set num="+Application["total"].ToString(),con);
    cmd.ExecuteNonQuery();
    con.Close();
    }