在用户控制页面 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)
有任何想法吗?
UserControls实际上是从Control类派生的,没有任何PreInit可用的事件。
继承层次结构
System.Object
System.Web.UI.Control
System.Web.UI.TemplateControl
System.Web.UI.UserControl
Run Code Online (Sandbox Code Playgroud)
PreInit 事件可用于页面类。