문제

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?

도움이 되었습니까?

해결책

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.

다른 팁

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());
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top