处理会话变量的超时

时间:2012-02-16 22:47:00

标签: c# asp.net asp.net-mvc-3 session-variables

我想知道它有一种方法可以在web.config或某个地方配置应用程序来处理会话的时间。我想要实现的是去一些控制器并保存日期时间和会话变量之前的会话变量的其他一些值设置为null因为会话得到了超时

1 个答案:

答案 0 :(得分:0)

我不确定它在MVC中是否相同,但是在你的asp.net中我有一个应用程序需要在有人会话超时时记录,我在Session_End

if (Session == null || Session["logout-clicked"] != null) return;
TimeSpan ts = DateTime.Now - (DateTime)Session["session.start"];
new EventLog()
{
    EventLogType = EventLogType.SessionTimedOut,
    UserId = ((UserObject)Session["UserSession"]).Id,
    DateStamp = DateTime.Now,
    LogData = "logged in for: " + (Int32)ts.TotalHours + "hrs " + ts.Minutes + "mins",
    CachedName = ((UserObject)Session["UserSession"]).Name
}.Save();

显然你必须在你的登录方法中设置一些会话变量(如果你想要这样的信息,比如总登录时间/会话时间),你可能有自己的方法来保存任何东西数据是你需要保存的...但希望这可能激发一些想法?

我有一个“logout-clicked”会话变量(当你点击注销时设置),因为当用户点击注销时它将有一个不同的日志,并且在你调用Session.Abandon()之后调用Session_End所以我需要确保它没有记录注销,然后是会话超时。