我这么写怎么还是不能退出登录,为什么?
protected void LinkButton3_Click(object sender, EventArgs e)
{
Session.Abandon();
Response.Redirect("login.aspx");
}
if(Session["abc"] = null)
{
Response.Redirect("login.aspx");
}
不过这种方式不好,人家可以通过浏览器左上角的“后退”按钮返回。
下面的方式就可以避免这种情况:
if(Session["abc"] = null)
{
Response.Redirect("logout.aspx");
}
添加界面logout.aspx
在logout.aspx.cs的Page_Loge中写入以下代码:
private void Page_Load(object sender, System.EventArgs e)
{
在此处放置用户代码以初始化页面
Session.Remove("abc");
Session.RemoveAll();
this.Page.RegisterStartupScript("","<script>window.top.document.location.href='Login.aspx';</script>");
}
if(Session["abc"] = null)
{
Response.Redirect("login.aspx");
}
不过这种方式不好,人家可以通过浏览器左上角的“后退”按钮返回。
下面的方式就可以避免这种情况:
if(Session["abc"] = null)
{
Response.Redirect("logout.aspx");
}
添加界面logout.aspx
在logout.aspx.cs的Page_Loge中写入以下代码:
private void Page_Load(object sender, System.EventArgs e)
{
在此处放置用户代码以初始化页面
Session.Remove("abc");
Session.RemoveAll();
this.Page.RegisterStartupScript("","<script>window.top.document.location.href='Login.aspx';</script>");
}
试了您的代码,仍然是能够通过浏览器左上角的“后退”按钮返回需要登录验证通过的页面。我的操作是这样的,先登录 Login.axpx 页面,通过输入正确的用户名和密码 验证通过后才能进入 index.aspx 页面,然后我通过左边的收藏夹列表点击了其它的网页,然后通过浏览器左上角的“后退”按钮,这时index.aspx 页面依然出现,不需先到 Login.axpx 页面通过验证的。如何解决这个问题啊?
index.aspx.cs 的Page_Load事件如下:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["logon"] != null)
{
if (Session["logon"].ToString() != "logonSuccess")
{ Response.Redirect("logout.aspx"); }
}
else
{
Response.Redirect("logout.aspx");
}
……
}
Logout.aspx.cs 代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
Session.Remove("logon");
Session.RemoveAll();
this.Page.RegisterStartupScript("","<script>window.top.document.location.href='Login.aspx';</script>");
}
我想是不是因为在进入了index页面后,接着再打开其它网页的时候,并没有自动清空Session["logon"]引起的,导致通过浏览器左上角的“后退”按钮返回到index页面时,能通过Session验证?
双击页面Global.asax
修改代码
protected void Session_End(Object sender, EventArgs e)
{
session["abc"]="";
}
退出登陆
protected void LinkButton3_Click(object sender, EventArgs e)
{
Session["abc"]="";
Response.Redirect("login.aspx");
}
进入index.aspx
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
if(this.Session["abc"].ToString()!="")
{
}
else
{
Response.Redirect("Login.aspx");
}
}