代码之家  ›  专栏  ›  技术社区  ›  dotariel

ASP.NETMVC会话超时和TempData

  •  3
  • dotariel  · 技术社区  · 14 年前

    在GET->POST->重定向到“显示确认消息”之后,我还在控制器中使用TempData。例如,当用户注销时,my Logout()控制器操作清除会话,设置TempData[“Message”]并重定向到Login()操作。Login()操作然后显示任何非空的TempData[“Message”]。

    TempData["Message"] = "You have successfully logged out.";
    

    我的问题(最后)如下。如果会话超时,我希望能够将用户重定向到Login()操作,而不是用户注销。

    TempData["Message"] = "You have been logged out due to inactivity.";
    

    我不确定1)在这个场景中使用TempData收集是否合适,或者2)在什么地方处理这个问题。

    我希望尽可能多地遵守MVC指导原则/最佳实践,因此,似乎以某种丑陋的方式使用Session_End并不是我想要的方式。我想避免路过一个?查询字符串中的timeout也为true。

    有什么想法吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   ZippyV    14 年前

    当会话过期时,您无法在服务器上执行任何操作,因为浏览器不是一直连接到服务器的。

    我会创建一个javascript函数,在sessionperiod过期后的短时间内刷新页面。