【问题标题】:how do something at [START] of timeout timer in SessionState如何在 SessionState 的超时计时器的 [START] 处执行某些操作
【发布时间】:2011-12-24 06:56:39
【问题描述】:

我遵循以下线程来获取在线用户数:

How to show number of online users / visitors for ASP.NET website

似乎一切正常!
但我的重点是 SessionState 的超时:

<system.web>

<sessionState mode="InProc" cookieless="false" timeout="20" />

</system.web>

我将超时设置为 1 分钟,以获得在线用户的最佳效果!
但是这里有个问题!
我想让我的用户在网站上存活大约 2 或 3 个小时,这样他们就不需要一次又一次地登录网站。
有没有办法在 SessionState 的超时 start 处做某事?

谢谢你

【问题讨论】:

  • 你在链接上有这个你可以尝试使用更低或更高的超时设置值,看看什么最适合你的网站

标签: c# asp.net timeout session-state


【解决方案1】:

如果您想让用户保持登录状态,但又不想使用会话状态来存储他们的登录信息,那么您将不得不依靠其他一些信息来检查用户是谁。

这可能需要写出一个 cookie,然后当未登录(就会话状态而言)用户进入网站时,尝试使用 cookie 中的信息自动登录。

只使用进程外会话服务器(例如 SQL Server)然后将会话超时设置为 180 分钟会更容易(并且可能更安全、更易于维护并且在许多其他方面更好)。

【讨论】:

  • 感谢您的回答,(就会话状态而言)-> 我如何捕获以 c# 代码开头的内容?
  • Global.asax 文件中的 Session_Start 事件将是一个开始的地方,或者您可能必须编写自定义身份验证 HttpModule 我不确定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 2020-07-13
  • 1970-01-01
相关资源
最近更新 更多