PageBase クラスから派生したいくつかの aspx ページを持つ Web サイトがあります。たとえば、その 1 つを以下に示します。
public partial class Pages_Home_Default : PageBase
{
}
これらのページのいくつかでは、ログインしない限りアクセスできないようにしたいと考えています。IsMember プロパティを使用して、PageBase でクライアントがログインしているかどうかを取得できます。
それを達成するために属性を使用したいと思います。例えば:
[AuthenticationRequired(true)]
public partial class Pages_Home_Default : PageBaseList
{
}
[AttributeUsage(AttributeTargets.Class)]
public class AuthenticationRequired : Attribute
{
public AuthenticationRequired(bool isMemberRequired)
{
Value = isMemberRequired;
}
public bool Value { get; private set; }
}
たとえば、PageBase では次のようになります。
protected override void OnPreInit(EventArgs e)
{
//Retrieve the AuthenticationRequired attribue value and if not authenticated Redirect client to a login page if logged in, continue displaying the page
}
また、属性を取得して読み取るためにこれを見つけました
System.Reflection.MemberInfo info = typeof(Pages_Home_Default);
object[] attributes = info.GetCustomAttributes(true);
しかし、これは、DERIVED クラスではなく BASE クラスで実行したい場合には実用的ではありません。
これはできますか?
どうもありがとうございました