注销后如何防止访问页面?

时间:2012-09-22 09:56:58

标签: c# javascript asp.net

我正在使用ASP.NET和C#。点击退出后我正在使用它。

Session.Abandon();
Session.RemoveAll();
Page.Responce.Cache.setCacheability(HttpCacheability.NoCache);
Response.Redirect("Default.aspx");

但是在此之后,如果他们点击浏览器中的后退按钮,它将转到上一页。

有没有办法阻止这种情况?

谢谢..

修改

我确实使用了这个。

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        if (Session["LoginId"] == null)
            Response.Redirect("frmLogin.aspx");
        else
        {
            Response.ClearHeaders();
            Response.AddHeader("Cache-Control", "no-cache, no-store, max-age=0, must-revalidate");
            Response.AddHeader("Pragma", "no-cache");
        }
    }
}

因此他们单击浏览器后退按钮然后将调用页面加载,以便我们可以检查会话变量以进行身份​​验证。

4 个答案:

答案 0 :(得分:2)

我发布了一个链接,我希望这能指导您并随时为您提供帮助,请点击此处

http://www.dotnetfunda.com/

答案 1 :(得分:1)

protected void Page_Load(object sender,EventArgs e)         {             if(!IsPostBack)             {

            if (Session["Navigation"] == null)
            {
                Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                Response.Cache.SetNoStore();
                Response.Redirect("~/Login.aspx");
            }                                                                               protected void lnkbtnLogOut_Click(object sender, EventArgs e)
    {

        Session["Navigation"] = null;
        Session.Abandon();

        Response.Redirect("~/Login.aspx");
    }                                                                                             but it's not working.It still redirects to prevoios page after click on back button

答案 2 :(得分:0)

设置页面属性<outputcache=none>

答案 3 :(得分:0)

以下将以您的方式服务:

代码在浏览器中禁用缓存。

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();

或者

您可以在注销后添加脚本以在浏览器上删除历史记录。

Page.ClientScript.RegisterStartupScript(this.GetType(),"cle","windows.history.clear",true);

希望以上两种方法都能奏效。


如果会话不可用,您可以检查Session["---"]变量的可用性,然后将用户重定向到登录/注册页面。

我的意思是,您放弃会话,这可能会破坏会话变量。因此,当用户单击后退按钮时,系统将检查会话,它将找不到,并且用户将被重定向到登录/注册页面。

如果您使用内置成员资格类进行用户管理,则使用[授权]属性。这可能会阻止用户在注销后访问页面,并将未注册的用户重定向到“登录/注册”页面。