【问题标题】:How to maintain User Session in asp.net?如何在asp.net中维护用户会话?
【发布时间】: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


【解决方案1】:

根据您提供的当前配置,asp.net 将在 50 分钟后自动清除会话。因此,在应用程序逻辑中,您必须实现会话验证以检查会话是否为空并将用户重定向回登录页面。

或者您可以实现手动页面退出逻辑,但创建一个名为“logout.aspx”的新页面并在页面加载事件中清除会话并将用户重定向到登录页面。因此,每当您的用户单击 Singout 链接时,您可以将链接重定向到 logout.aspx,它会清除会话并将您的用户转发回登录页面。

【讨论】:

  • 是的,如果会话为空,应用程序会将用户重定向到登录页面
猜你喜欢
  • 1970-01-01
  • 2013-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多