这是我的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!Session["Authenticated"] )
{
Response.Redirect( "index.aspx", false );
}
}
登录后,我将会话设置为true。基本上,如果他们没有活动会话,我希望他们重新定向回索引/登录页面。我该如何做到这一点?
答案 0 :(得分: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
答案 1 :(得分:1)
使用此检查
if(Session["Authenticated"] == null || !(bool)Session["Authenticated"])