在用户控制页面中Page_preinit事件未触发。 给出Bellow的代码:
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();
}
有什么想法吗?
答案 0 :(得分:4)
UserControls
实际上来自 Control
类,并且没有任何PreInit
个可用事件。
继承层次结构
System.Object
System.Web.UI.Control
System.Web.UI.TemplateControl
System.Web.UI.UserControl
PreInit
事件可用于Page Class。