【发布时间】: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 分钟后我都会被踢。谢谢您的帮助。杰米如果你可以让你的评论成为答案,我很乐意点击勾号:)