如何防止会话超时

时间:2011-11-22 01:29:54

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

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

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

我也听说过用饼干做这件事。怎么样?

我正在使用C#和.Net

2 个答案:

答案 0 :(得分:13)

这是一种方式:

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

  

有时您希望自己的网页“活着”。也就是说,如果用户填写了复杂的表单,则不希望会话在完成之前超时。用户可能非常生气并且理所当然:你甚至可能会大喊大叫!

     

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

     

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

     

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

答案 1 :(得分:2)

我们使用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#