System.Web.Ui.Pageから継承するBasePageクラスを作成しました。その基本クラスには、ページが安全かどうかをチェックするboolプロパティがあります。最初は(基本クラスの)PreInitイベントにコードを挿入しましたが、それについて考えると、派生したページはPreInitの前にbool値を設定できません。私はdervciedページのPreInitの値を設定し、その基本クラスのPageInitの値をチェックすることを考えましたが、派生ページでPreInitを使用する必要がある場合はどうしますか?System.Web.Ui.Pageはページイベントを拡張できる派生クラスですか?
私は部分的なメソッドを使うことを考えましたが、ページイベントがSystem.Web.Ui.Pageの部分的なものではないので、私はそれを行うことはできません。
My 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;
}
}
あなたの考えは正しいです。私はどこに問題があったのか分かりません。擬似コードの例ができますか? – Bazzz
「ページが安全かどうか」と言うとどういう意味ですか?ユーザーに表示する権限があるかどうか –
@アンダーファインドスタッド - はい、ユーザーのセキュリティ上の理由からです。私たちには特別な必要性があります。 – DDiVita