首页 文章

asp.net 2.0会话超时

提问于
浏览
2

我提前为这可能被问到的事先道歉 . 我有一个asp.net 2.0 Web应用程序,我正在尝试设置会话超时 .

我的第一次尝试是将其添加到web.config中 . <sessionState mode =“InProc”timeout =“300”>

用户会告诉我,虽然在闲置大约20分钟后再尝试在网站上再做一些事情,他们会被重定向回登录页面 .

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

我还在global.asax中尝试了Session.Timeout = 60 .

这些有用吗?我需要别的东西吗?感谢您的时间和帮助 .

2 回答

  • 3

    从另一个论坛帖子 .

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

    <authentication mode="Forms"> 
        <forms timeout="1024"/> 
    </authentication>
    
  • 2

    会话超时和身份验证超时是两个不同的事情 .

    任何访问您网站的用户都会获得一个会话,无论他们是否已登录 . 在他们在指定的超时时间内处于非活动状态后,他们的会话就会消失,并在下次访问您的网站时为其分配新会话 .

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

    您需要在web.config中查找身份验证超时并调整它以匹配会话超时 .

相关问题