配合使用 Application 来使用
1 public class MvcApplication : System.Web.HttpApplication 2 { 3 /// <summary> 4 /// 全局事件开始 5 /// </summary> 6 protected void Application_Start() 7 { 8 AreaRegistration.RegisterAllAreas(); 9 10 WebApiConfig.Register(GlobalConfiguration.Configuration); 11 FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 12 RouteConfig.RegisterRoutes(RouteTable.Routes); 13 BundleConfig.RegisterBundles(BundleTable.Bundles); 14 Application.Lock(); 15 Application["online"] = 0; 16 Application.UnLock(); 17 } 18 /// <summary> 19 /// 全局事件结束 20 /// </summary> 21 protected void Application_End() 22 { 23 24 } 25 /// <summary> 26 /// 单个用户事件开始 27 /// </summary> 28 protected void Session_Start() 29 { 30 Application.Lock(); 31 int online = (int)Application["online"]; 32 Application["online"] = online + 1; 33 Session["LoginDate"] = DateTime.Now; 34 Application.UnLock(); 35 } 36 /// <summary> 37 /// 单个用户事件结束 38 /// </summary> 39 protected void Session_End() 40 { 41 Application.Lock(); 42 int online = (int)Application["online"]; 43 Application["online"] = online - 1; 44 Application.UnLock(); 45 } 46 }
controller 的代码
1 [HttpPost] 2 public string LoginCheck() 3 { 4 if (Session["LoginDate"] == null) 5 { 6 Session["LoginDate"]=DateTime.Now; 7 return "登录超时!"; 8 } 9 DateTime loginDate = Convert.ToDateTime(Session["LoginDate"]); 10 TimeSpan ts = DateTime.Now - loginDate; //记算当时间时与Session中保存的时间差 11 string str = string.Format("已经登录{0}天{1}小时{2}分{3}秒", ts.Days, ts.Hours, ts.Minutes, ts.Seconds); //格式化输出 12 return str; 13 }
浙公网安备 33010602011771号