2014-03-04 2 views
0

사용자 제어 페이지 Page_preinit 이벤트가 실행되지 않습니다. 코드 제공 :UserControl 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(); 
} 

아이디어가 있으십니까?

+0

디자인 페이지 쪽도 넣으십시오 –

+2

'AutoEventWireup' 속성은 사용자 정의 컨트롤에서 어떻게 설정되어 있습니까? 귀하의 페이지에 있습니까? –

+0

이 질문에 대한 이유가 확실하지 않은 이유는 무엇입니까? 특히 사용자가 페이지를 보는 데 대부분의 시간을 소비하는 경우 PreInit이 사용자 컨트롤에 대해 실행되지 않는다는 것이 전혀 분명하지 않습니다. – mac9416

답변

4

UserControls 실제로 Control 클래스에서 파생 된 것으로, 어떤 PreInit 이벤트 사용할 수 없습니다.

상속 계층 구조

System.Object 
    System.Web.UI.Control 
    System.Web.UI.TemplateControl 
     System.Web.UI.UserControl 

PreInit 이벤트는 페이지 클래스에 사용할 수 있습니다.

관련 문제