为什么 UserControl Page_PreInit 事件不触发?

LiS*_*LiS 1 c# asp.net

在用户控制页面 Page_preinit 事件未触发。下面给出的代码:

protected void Page_PreInit(object Sender, EventArgs e)
{   
    if (!Page.User.Identity.IsAuthenticated && !Page.User.IsInRole("Admin"))
    {
        Response.Redirect("abcd/Index.aspx?Auth=Fail");
    }
    else
    {
        FormsIdentity id = (FormsIdentity)Page.User.Identity;
        FormsAuthenticationTicket ticket = id.Ticket;
        String[] userDatas = ticket.UserData.Split('|');
        ViewState["Role"] = userDatas[0];
        ViewState["Language"] = userDatas[2];
        this.Page.Theme = userDatas[1];
    }
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
    Response.Cache.SetNoStore();
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

R.C*_*R.C 5

UserControls实际上是从Control类派生的,没有任何PreInit可用的事件。

继承层次结构

System.Object
  System.Web.UI.Control
    System.Web.UI.TemplateControl
      System.Web.UI.UserControl
Run Code Online (Sandbox Code Playgroud)

PreInit 事件可用于页面类。