我有一个登录页面(default.aspx),后跟2个asp.net页面(page1.aspx,page2.aspx) 在具有注销按钮的母版页下。当我单击logout时,它会使会话为空,因此注销。
但是当我将page1.aspx的url放在地址栏中后退出时,它会再次显示页面(page1.aspx)。
我的退出按钮代码:
Session["id"] = null;
Response.Redirect("Default.aspx");
Response.Cache.SetNoStore();
Response.CacheControl = "no-cache";
答案 0 :(得分:4)
你必须使用会话放弃方法Session abandon Session.Abandon()
答案 1 :(得分:2)
试试这段代码:
Session.Abandon();
Session.Clear();
Response.Cookies.Clear();
Response.Redirect("Default.aspx");
答案 2 :(得分:1)
首先,您必须清除会话值,然后重定向到另一个页面后
Session["id"] = null;
Session.Clear();
Response.Cookies.Clear();
Response.Cache.SetNoStore();
Response.CacheControl = "no-cache";
Response.Redirect("Default.aspx");
答案 3 :(得分:0)
您可以尝试删除包含会话ID的Cookie。像这样:
Session.Abandon();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
答案 4 :(得分:0)
根据之前的回答,您绝对可以使用Session.Abandon();
,之后您必须检查特定页面加载时会话值的条件。
if (Session["Name"] == null)
{
Response.Redirect("Login.aspx");
}