【发布时间】:2014-02-01 14:20:48
【问题描述】:
我有管理页面,用于为我的网站做一些更新工作。问题是会话将在一分钟或 30 秒内到期,并将注销用户。我已经在根文件夹的 Web.Config 以及 Admin 文件夹内的 Web.Config 中设置了会话,但会话仍然很快就会过期。我已将其设置为 60 分钟,但它仅持续 30 秒或一分钟内。这是我的 根文件夹的 web.config 内容
<sessionState timeout="60" mode="InProc"
cookieless="false"></sessionState>
<customErrors mode="Off">
</customErrors>
<trace enabled="true" />
<authentication mode="Forms">
<forms
protection="All"
timeout="120"
domain="www.marpallichande.in"
slidingExpiration="true"
name="auth_cookie" />
</authentication>
这是我在 Admin 文件夹中设置的 web.cofing 文件
<sessionState timeout="60" mode="InProc"
cookieless="false"></sessionState>
这是我在 Global.asax 文件中的 Session_Start 方法下的设置
Session.Timeout=60;
我不知道会话是如何这么快过期的,或者除了会话之外还有其他原因导致注销。
【问题讨论】:
-
如果在运行时检查 Session.Timeout 属性,当前值是多少?我看到您在 Global.asax 中设置了它,但它是否保留了该值?
-
您有预取网页浏览器和注销链接吗? (而不是注销按钮...)
-
@SimonSvensson.. 是的,我有一个注销链接..
-
@Kaushik,注销链接在语义上是一件坏事。尝试将其注释掉,这样您的浏览器就看不到与注销功能相关的任何内容,并查看您的会话是否运行得更好。一些浏览器(和浏览器插件)会浏览他们认为您接下来想看到的链接,包括查看指向 /logout.aspx 的链接
-
@SimonSvensson.. 请告诉我我可以保留哪些其他选项来注销而不是注销链接。
标签: c# asp.net session session-timeout