0

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

Session.TimeOut = "60";

并且还使用web.cfg

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

Session在每个 page_load 上进行测试,例如:

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

但似乎Session在导航中间迷路了,因为一段时间后 (1min, 5min, 2min ....) 它返回到login page. 这里有什么问题?我还阅读了一些关于Membership Authentication但我无法理解的文章 =\
谢谢

4

2 回答 2

0

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

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

有单独的会议。

于 2013-01-25T11:18:04.710 回答
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 设置中的错误设置导致应用程序池回收,因此会话消失了。

于 2013-01-25T11:25:19.753 回答