我有以下代码注销。当它退出注销但按下后退时,它不应该转到之前访问过的页面,但确实如此。
//登录时
if (txtPassword.Text == password)
{
Session["Login"] = true;
Response.Redirect("AdminControlPanel.aspx");
}
//注销时
Session["Login"] = false;
Session.Abandon();
FormsAuthentication.SignOut();
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetAllowResponseInBrowserHistory(false);
Response.Redirect("~/index.aspx");
//检查adminpanel.aspx
if (!this.Page.IsPostBack)
{
if (this.Session["Login"]==null || (bool)this.Session["Login"]==false)
{
base.Response.Redirect("~/index.aspx");
}
}
这有什么问题?
答案 0 :(得分:3)
尝试设置Cache-Control。
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetAllowResponseInBrowserHistory(false);
答案 1 :(得分:0)
将值分配给session
变量
在if (txtPassword.Text == password)
中设置一个断点并检查
会发生什么。
也
if (!this.Page.IsPostBack)
{
if (!string.IsNullOrEmpty((string) Session["Login"]))
{
var result = Convert.ToBoolean(Session["Login"]); //put a break point there also and check what values it getting
}
}