2010-03-31 135 views
2

我为此之前可能被问到的事先道歉。我有一个asp.net 2.0 web应用程序,并试图设置会话超时。asp.net 2.0会话超时

我的第一次尝试是将此添加到web.config。 <的sessionState模式=“InProc方式”超时=“300”>

用户会告诉我尽管这大约20分钟的网站上被闲置,然后试图做一些事情再次后,他们会被重定向回登录页。

所以现在我正在尝试 timeout =“60”在我的<窗体标签web.config中。

我也在我的global.asax中尝试了Session.Timeout = 60。

这些工作应该如何?我需要别的东西吗?感谢您的时间和帮助。

回答

3

来自另一个论坛帖子。

有两种不同类型的 超时。一个是身份验证 超时(将您重定向到 登录页面),另一个是会话 超时(会丢失所有会话 变量)。我通过使用 session.timeout将会话超时设置为 global.asax session_start。在你的webconfig, 您可以通过编辑这个标签设置认证超时 :

<authentication mode="Forms"> 
    <forms timeout="1024"/> 
</authentication> 
+0

这对我有意义,我现在看到我需要设置窗体超时。尽管出于好奇。为什么不只是让sessionState超时而已,并且在超时结束之前不让它们返回登录状态?就像我说的那样,我将它设置为300. – d3020 2010-04-01 00:57:39

+0

会话状态与认证无关,除了认证使用会话之外。 – 2010-04-01 01:17:24

+0

好的。那么,设置会话状态超时对超时没有影响,那么你是说?有没有任何关系或联系?我的意思是说,我将forms标记中的超时设置为60,将会话状态标记中的超时设置为30.在这种情况下,效果如何? – d3020 2010-04-01 01:22:01

2

会话超时和认证超时是两回事。

访问您网站的任何用户都会获得会话,无论他们是否已登录。在指定的超时时间内,他们的会话已停止,并且他们的会话将在下次分配一个新会话他们击中你的网站。

表单身份验证在也有超时的cookie中使用身份验证票证。如果身份验证超时时间短于会话超时时间,身份验证票证将过期,用户仍将被注销 - 但他们仍将拥有其会话数据!

您需要在web.config中查找身份验证超时并将其调整为与会话超时匹配。

+0

好吧,我看到有两种不同类型的超时,我需要设置一个表单身份验证。但我不完全清楚的是你谈论会话超时的地方。就像我之前说的,在表单部分放入超时属性之前。我的sessionState超时设置为300,但它仍然在20分钟左右后将用户记录下来。我仍然不确定为什么会这样。 – d3020 2010-04-01 00:56:01