【问题标题】:ASP. NET Session variable expires much fasterASP。 NET 会话变量过期得更快
【发布时间】:2014-12-01 16:18:11
【问题描述】:

我在登录时设置了一个会话变量:

HttpContext.Current.Session["user_key"] = res; //being some string eg: "asd"
    HttpContext.Current.Session.Timeout = 60;

以防万一我也有

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

然后我需要检查用户并在几乎每个页面和每个 Page_load 上获取他们的 ID 的日期:

if(HttpContext.Current.Session["user_key"]!= null)
{
   sesvar = (string)(context.Session["user_key"]);
}
else 
{
   HttpContext.Current.Response.Redirect("/login/");
}

这在大多数情况下都有效。但绝对不是60分钟。我会时不时地被“踢”(重定向到登录),不知道为什么。

此外,该项目通过 Dreamweaver 进行工作和维护。作为一个网站,它不会以任何方式编译,而是在 IIS 服务器上运行。

【问题讨论】:

  • 当您的服务器端代码发生更改时,会话会自动销毁。
  • "我会被“踢”(重定向到登录)..." - 如果您使用表单身份验证,请注意表单身份验证 cookie 完全独立于会话 cookie。
  • 这应该是@Jamie 所说的。我也突然想到,我从来没有在任何地方重新设置它。我从不返回登录,所以它只设置一次,并且在网站上的任何内容 20 分钟后我都会被踢。谢谢您的帮助。杰米如果你可以让你的评论成为答案,我很乐意点击勾号:)

标签: asp.net session


【解决方案1】:

事实证明,我们的数据库中的一个函数每隔一小时就会破坏一次,它会“清理”登录表,而它不应该有。

【讨论】:

    猜你喜欢
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 2011-03-09
    • 1970-01-01
    • 2018-07-05
    • 2019-04-03
    • 1970-01-01
    相关资源
    最近更新 更多