Tartar
Tartar

Reputation: 5452

ASP.NET prevent accessing the homepage before and after logout

I have a login page and a homepage. It's not possible to access homepage without login but after i login and click logout at the homepage. Users are able to access homepage from browser's address row. How can prevent this ? Here is my implementation

Login Click Method at AdminPanelLogin.aspx.cs:

protected void adminLoginButton_Click(object sender, EventArgs e)
    {
        String adminName = adminNameText.Text;
        String password = adminPwdText.Text;

        AdminPanelLoginProcess aplp = new AdminPanelLoginProcess();

        if (aplp.adminLogin(adminName, password))
        {
            Session["AdminAuthentication"] = aplp.Admn.AdminID;
            Response.Redirect("AdminPanel.aspx");
        }
        else
        {
            Response.Write("<script>alert('Login failed !');</script>");
        }
    }

Logout Click Method at AdminPanel.aspx.cs

        protected void adminPanelLogoutLink_Click(object sender, EventArgs e)
    {
        Session["AdminAuthentication"] = null;
        Session.Abandon();
        Response.Redirect("AdminPanelLogin.aspx");
    }

AdminPanel.aspx.cs Page Load Method:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["AdminAuthentication"] == null)
        {
            Response.Redirect("AdminPanelLogin.aspx");
        }
        else 
        {
            if (!IsPostBack)
            {
                showProducts();
                showModels();
                showShoes();
            }
            else 
            {
                if (Session["AdminAuthentication"] == null)
                {
                    Response.Redirect("AdminPanelLogin.aspx");
                }
            }
        }
    }

Upvotes: 0

Views: 1892

Answers (1)

user2316116
user2316116

Reputation: 6814

By default, the back button does not reload the page but get it from cache. Try to disable cache in AdminPanel.aspx as

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now);

or use any other method from http://www.codeproject.com/Tips/135121/Browser-back-button-issue-after-logout.aspx

Upvotes: 1

Related Questions