【问题标题】:How to prevent session timeout如何防止会话超时
【发布时间】:2012-01-03 11:43:18
【问题描述】:

我知道这对你们大多数人来说可能是一个简单的问题。但我的问题是我的服务器主机每分钟都清空他们的会话池。那么如何让我的用户保持登录状态超过一分钟?

我听说我可以使用 SessionStates,但我在网上没有找到任何适合像我这样的新手使用的指南。

我也听说过用 cookie 来做这件事。怎么样?

我正在使用 C# 和 .Net

【问题讨论】:

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


    【解决方案1】:

    我们使用 SQL Server 来保存会话状态。 http://idunno.org/articles/277.aspx

    这具有在服务器场中工作的额外优势。

    这些文章也会对您有所帮助:

    http://msdn.microsoft.com/en-us/library/ms178586.aspx

    http://support.microsoft.com/kb/317604

    对于真正易于关注的视频,请尝试以下搜索:http://www.bing.com/videos/search?q=asp.net+session+state+&go=&qs=n&sk=&sc=2-19&form=QBVR#

    【讨论】:

      【解决方案2】:

      这是一种方法:

      http://weblogs.asp.net/stevewellens/archive/2009/06/09/ah-ah-ah-ah-staying-alive-staying-alive.aspx

      有时您希望您的网页“保持活力”。也就是说,如果用户正在填写复杂的表单,您不希望会话在完成之前超时。用户可能会非常生气,这是理所当然的:你甚至可能会被骂!

      这不仅仅是将会话超时增加到一个非常大的值的问题。如果您这样做,会话将在服务器内存中保持活动状态数小时——在访问者离开站点之后很久。增加会话超时是一个解决方案……但不一定是一个好的解决方案。

      目标是只要网页在客户端计算机上打开,会话就应该保持活动状态……即使没有回发来重置会话计时器。当网页关闭时,会话应该正常超时。

      我为此实施了一个解决方案:客户端将在小于会话超时的时间间隔“ping”服务器,这将重置会话计时器。这被称为 Heartbeat 设计模式(我找不到合适的站点/页面来链接)...

      【讨论】:

      • +1 不仅因为它是一个很好的解决方案,而且还因为它是一个时髦的标题。
      猜你喜欢
      • 2017-04-08
      • 2010-11-23
      • 1970-01-01
      • 2014-07-16
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 2010-12-30
      • 1970-01-01
      相关资源
      最近更新 更多