Question

My master page:

public partial class MasterPages_Main : System.Web.UI.MasterPage
{
    public bool IsLoggedIn;

    protected void Page_Load(object sender, EventArgs e)
    {

        // Check login
        LoggedInUser ThisUser = new LoggedInUser();
        IsLoggedIn = ThisUser.IsLoggedIn;

        Response.Write("Master" + IsLoggedIn.ToString());

    }

This outputs 'True', we are logged in.

On my content page I do:

protected void Page_Load(object sender, EventArgs e)
{

    Response.Write("CONTENT:" + Master.IsLoggedIn.ToString());
}

But this outputs 'False'.

So the actual page output is:

Content:False
Master:True

On my content page I need to redirect if the user is logged in, but this value is always false from the content pages point of view! How can I resolve this?

Was it helpful?

Solution

Content Page load event occurs before Master Load (from here). So you probably need to change the logic, and maybe call some content page's methods from master Page_Load. Or set IsLoggedIn inside Master Init event handler.

OTHER TIPS

Change Master Page_Load to Page_Init, this will force it to execute before the content page.

The master page is called after your code for Page_Load(). Try this:

Protected void Page_Load(object sender, EventArgs e)
{
    base.Page_Load(sender,e); 
    Response.Write("CONTENT:" + Master.IsLoggedIn.ToString());
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top