单击浏览器后退按钮后,可以在注销后查看访问的页面。我该如何避免? [英] Visited Pages Can Be Viewed After Logout When Browser Back Button Is Clicked. How Do I Avoid?

查看:76
本文介绍了单击浏览器后退按钮后,可以在注销后查看访问的页面。我该如何避免?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我点击浏览器的后退按钮两次时,它带我去访问过的页面..这是我第一次点击退出后退出它带我按预期登录页面但是当我再次点击它带我访问过的页面..我如何阻止?任何想法这是我的代码:

when i click back button of the browser twice its taking me to visited pages.. for the first time when i click on back after log out its takes me to Login in page as expected but when i click back again its taking me to visited pages.. How do i stop that?? Any idea Here is my Code:

protected void Page_Load(object sender, EventArgs e)
    {
        Response.AppendHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
        Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.0.
        Response.AppendHeader("Expires", "0");

        if (!IsPostBack)
        {
            LoginMultiview.ActiveViewIndex = 0; /////  Login Page.
        }
        else
        {
        }         
    }

 protected void btnsubmit_Click(object sender, EventArgs e)
    {
        if (AuthenticateUser(txtUserName.Text, txtPassword.Text))
        {
            string Username = Session["username"].ToString();
            string Password = Session["password"].ToString();
            if (Session["username"] != null && Session["password"] != null)
            {
                GetEmployeeId(Username, Password);

                LoginMultiview.ActiveViewIndex = 1;

                GetManagerTimeSheets();
            }
            else
            {
                Response.Redirect("Login.aspx");
                LoginMultiview.ActiveViewIndex = 0;
            }
        }
        else
        {
            string Username = Session["username"].ToString();
            string Password = Session["password"].ToString();
            if (Session["username"] != null && Session["password"] != null)
            {
                ddlWeeks.DataSource = GetWeeksDropdownData();
                ddlWeeks.DataBind();

                Response.Write("WELCOME" + " " + Username);
                LoginMultiview.ActiveViewIndex = 2;
            }
            else
            {
                Response.Redirect("Login.aspx");
                LoginMultiview.ActiveViewIndex = 0;
            }
        }
    }





注销时的代码LinkBut​​ton:



Code with in Logout LinkButton:

protected void LinkButton2_Click(object sender, EventArgs e)
    {
        Session.Clear();
        Session.RemoveAll();
        Session.Abandon();
        if (Session["username"] == null&& Session["password"]== null)
        {
            Response.Redirect("Login.aspx", true);

        }           
    }

推荐答案

if (Session["username"] == null&& Session["password"]== null)
    {
           Response.Redirect("Login.aspx", true);

    }



为什么不在上面的代码中添加上述代码。



我建议你使用server.transfer而不是response.redirect。看到这里的差异 Server.Transfer VS Response.Redirect - Simplified [ ^ ]


在母版页(或每隔一页)的页面加载事件中,你应该检查Session

变量username和password是否为空,如果然后为空,则重定向到登录页面
In the page load event of the master page (or every other page) , you should check Session
variables "username" and "password" empty or not , if then are empty then redirect to login page


这篇关于单击浏览器后退按钮后,可以在注销后查看访问的页面。我该如何避免?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆