Я создал класс BasePage, который наследуется от System.Web.Ui.Page.В этом базовом классе у меня есть свойство bool, которое проверяет, безопасна ли страница.Первоначально я поместил код в событие PreInit (базового класса), но, подумав об этом, мои производные страницы не смогут установить значение bool до PreInit.Затем я подумал об установке значения в PreInit страниц с проверкой и проверке этого значения в PageInit базового класса, но что, если мне нужно использовать PreInit на производной странице?
Я подумал об использовании частичных методов, но я не думаю, что смогу это сделать, потому что события страницы не являются частичными в System.Web.Ui.Page, верно?
Кстати, мой класс BasePage - абстрактный класс.
Это то, что у меня сейчас (я не проверял это, но предполагал, что это может работать):
public abstract partial class BasePage: System.Web.UI.Page
{
public bool IsSecure { get; set; }
protected void Page_Init(object sender, EventArgs e)
{
if (!IsSecure) return;
if (PageMaster == null)
return;
if (!PageMaster.IsUserLoggedIn)
{
HttpContext.Current.Response.Redirect("~/WebForms/LogIn.aspx");
}
}
}
public partial class _Default : BasePage
{
protected void Page_PreInit(object sender, EventArgs e)
{
IsSecure = true;
}
}