Here is my master page code behind:
namespace mysite.MasterPages
{
public partial class Main : System.Web.UI.MasterPage
{
public bool isLoggedIn;
protected void Page_Load(object sender, EventArgs e)
{
isLoggedIn = Request.IsAuthenticated; // Is the user currently logged in
}
}
}
Here is my register page code behind:
namespace mysite
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (((MasterPage)Page.Master).isLoggedIn)
{
Response.Redirect("default.aspx");
}
}
}
}
I’m trying to make the isloggedIn accessible to all pages using that as a master page! I get errors like:
Error 2 The name ‘isLoggedIn’ does not exist in the current context
Error 3 ‘System.Web.UI.MasterPage’ does not contain a definition for ‘isLoggedIn’ and no extension method ‘isLoggedIn’ accepting a first argument of type ‘System.Web.UI.MasterPage’ could be found (are you missing a using directive or an assembly reference?)
Any help appreciated.
add
<%@ MasterType VirtualPath="~/Main.master" %>to your page markup.and your
this.Master‘s type becomesAlphaPack.MasterPages.Maininstead ofSystem.Web.UI.MasterPage. So you will be able to access it without cast:Currently you need do next:
And better – create a property. And hold data not in variable but in ViewState (read Control State vs. View State):
And what about code-behind. I recommend to use Web App project, not Web Site project (which is out-of-date)!
Next markup syntax is used. Web app:
and web site: