设置会话超时

时间:2013-01-25 11:08:17

标签: asp.net visual-studio-2010 session timeout

我已经从这里和外面读过一些其他线程,但没有任何效果......我有一些Sessions喜欢(登录,列的值......)。我想设定Sessions到期的时间......我试过了:

Session.TimeOut = "60";

并使用web.cfg

<configuration>
  <system.web>
     <sessionState timeout="60"></sessionState>
  </system.web>
</configuration>

我在每个page_load上测试Session,如:

if(Session["login"] == null)
{
   Response.Redirect("/Login.aspx");
}

但似乎Session在导航过程中丢失了,因为过了一段时间(1分钟,5分钟,2分钟......)它返回login page。这可能有什么问题? 我还阅读了一些关于Membership Authentication的文章,但我无法得到它= \
感谢

2 个答案:

答案 0 :(得分:0)

您应该检查是否不重定向到其他(子)域。在每个域上,用户将获得一个单独的会话。例如:

http://ww.mydomain.com
http://wwww.mydomain.com

举行会议。

答案 1 :(得分:0)

一旦应用程序池回收,您也将丢失会话。如果您发现任何有用的内容可以帮助您解决问题,请查看此链接http://blogs.msdn.com/b/johan/archive/2007/05/16/common-reasons-why-your-application-pool-may-unexpectedly-recycle.aspx

我曾遇到过类似的问题,会话超时在web.config中设置为60分钟,但会话在20分钟后仍然丢失。原来是IIS设置中的错误设置导致应用程序池回收,因此会话已经消失。