【发布时间】:2014-08-28 18:45:20
【问题描述】:
我正在开发一个应用程序。当用户登录时,会创建一个新会话,并在他注销时销毁会话。
在 web.config 中我使用 session mode = InProc 之类的,
<sessionState cookieless="false" mode="InProc" timeout="50"></sessionState>
如您所见,在50 min 之后会话被破坏。我只想知道如果他/她在 50 分钟后未注销,如何维护或重新生成用户会话。
谢谢。
【问题讨论】:
-
这 50 分钟超时是在用户 50 分钟不活动的情况下,所以它是滑动到期而不是绝对到期
-
可以在Sql server 中持久化会话吗?或者,如果您正在创建 ASP.NET MVC5,他们创建了一个名为“OWIN Forms authentication”的新身份验证中间件。它是一个基于 cookie 的身份验证,可以持续数天。我建议你考虑一下,它很容易实现。
-
你可以做些什么来测试它是如何工作的,就是暂时将你的测试环境中的超时时间缩短到 1 分钟,然后观察如果你在 55 秒后刷新页面然后再次说 20 会发生什么几秒钟后(测试滑动到期)。要测试超时,请在 65 秒后刷新页面。
-
问题是我正在为一家公司开发网络表单,我必须使用网络表单。他们限制我不使用会话状态而不是 inproc 其他模式稍微慢一点应用程序。
标签: c# asp.net session session-state session-timeout