如何保持不同会话变量的超时时间不同

Posted

技术标签:

【中文标题】如何保持不同会话变量的超时时间不同【英文标题】:How do I keep timeout time of different session variables different 【发布时间】:2014-08-27 16:00:22 【问题描述】:

我正在使用两个会话变量sessionLoginsessionPageNameSessionLogin 将保存登录用户的登录名,sessionPageName 将保存当前加载的页面的名称。随着sessionLogin 超时发生,页面被重定向到登录页面。 sessionPageName 的目的是将用户重定向到用户在 sessionLogin 超时之前最后查看的页面。

我的问题是如果sessionLogin 过期,考虑到会话超时间隔在 20 分钟之后,sessionPageName 也会过期吗?如何将sessionPageName 的超时时间延长至例如 30 分钟并将sessionLogin 的生命周期保持为默认值?

或者,asp.net C# 中是否有办法将用户带到他们在sessionLogin 过期之前查看的最后一个页面,从而导致在我的代码中直接进入登录页面?

【问题讨论】:

***.com/questions/6069502/… 您应该了解表单身份验证在 ASP.NET 中的工作原理。听起来您正在尝试重新发明***。 【参考方案1】:

如果使用的是FormAuthentication,则您正在寻找ReturnUrl

FormsAuthentication.RedirectFromLoginPage

(使用 ReturnUrl QueryString 参数)

FormAuthenticationmsdn 链接

【讨论】:

感谢您的评论。我按照你的方式做了。我有一个使用表单的母版页,并且在其内容占位符中使用了表单身份验证。但是当会话到期并且用户被重定向到登录页面时,在用户登录后,用户在被重定向到登录页面之前会显示他上次浏览的页面的主页。我错过了什么吗?? 你在使用formauthentication吗? 我在会话中保留了登录用户名和密码,并使用了 FormsAuthentication.RedirectFromLoginPage(loginName, true);重定向到主页。现在,随着会话到期,用户被重定向到登录页面。在这里,当用户再次输入登录名和密码时,他被定向到主页,但我希望他定向到他上次查看的页面。我的 web.config 标签是 :: 呀。我的母版页使用表单,我在其内容占位符页面中使用表单身份验证 当会话超时时,它会使用一个查询字符串参数ReturnUrl 重定向到default.aspx。您是否在查询字符串中获取此参数?

以上是关于如何保持不同会话变量的超时时间不同的主要内容,如果未能解决你的问题,请参考以下文章

如何让 SignalR 连接尊重会话超时

可以在 Python Flask 中为不同的用户创建不同的会话超时长度吗?

如何解决会话超时问题?

windows7里的IIS里怎么设置session会话超时时间?

如何在 Grails 中实现超时页面

如何在Linux中增加SSH连接超时的时间