1

这是我的代码:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Session["Authenticated"] )
        {
            Response.Redirect( "index.aspx", false );
        }
    }

他们登录后,我将会话设置为 true。基本上,如果他们没有活动会话,我希望他们重新定向回索引/登录页面。我该如何做到这一点?

4

2 回答 2

1

使用此检查

if(Session["Authenticated"] == null || !(bool)Session["Authenticated"])
于 2012-04-13T20:05:44.673 回答
1

如果您使用 cookie,您可以在 cookie 中存储一个标记,以便区分“新浏览器 + 新会话”和“旧浏览器 + 过期会话”

下面是在会话过期时将用户重定向到过期页面的示例代码。

void Session_OnStart(Object sender, EventArgs e) 
{ 
  HttpContext context = HttpContext.Current;
  HttpCookieCollection cookies = context.Request.Cookies; 
  if (cookies["starttime"] == null) { 
    HttpCookie cookie = new HttpCookie("starttime", DateTime.Now.ToString()); 
    cookie.Path = "/"; 
    context.Response.Cookies.Add(cookie); 
  } 
  else { 
    context.Response.Redirect("expired.aspx"); 
  } 
}

如果您尝试实现会话,这可能会对您有所帮助http://aspalliance.com/1621_Implementing_a_Session_Timeout_Page_in_ASPNET.2

于 2012-04-13T20:04:43.837 回答