2011-11-21 2 views
2

조건이 참일 경우 페이지 라이프 사이클의 가장 중요한 부분인데로드 된 페이지에서 리디렉션되는 부분은 무엇입니까? 이 경우 가입 후 사용자가 계정 설정을했는지 확인하고 있습니다. 그들이 없으면 나는 방향을 바꾼다. 그러나 나는 질문을 페이지가 실제로로드되기 전에 확인 및 리디렉션을 수행하고 싶습니다.조건을 확인하고 리디렉션하는 가장 좋은 장소

아이디어가 있으십니까?

+0

변수 조건은 어디에 저장되어 있습니까? [PreInit] (http://msdn.microsoft.com/en-us/library/system.web.ui.page.preinit.aspx) 에서처럼 "더 빨리 실패 할"수 있습니다. 외부 페이지 처리에 앞서 전역 수준에서이를 수행하려면 ['HttpApplication'] (http://msdn.microsoft.com/en-us/library/system.web.httpapplication.aspx) 클래스와 ['BeginRequest'] (http://msdn.microsoft.com/en-us/library/system.web.httpapplication.beginrequest.aspx) (또는 이와 유사한) 이벤트 : 특정 요청 유형 (페이지)을 필터링해야합니다. –

+0

데이터베이스에 – Nugs

+0

그러면 리디렉션을 수행하기 위해 페이지가 완전히로드 될 때까지 기다릴 필요가 없을 것입니다. –

답변

1

난 당신이 모든 페이지에 대해이 작업을 확인해야 가정를 Page_Load 방법

protected void Page_Load(object sender, EventArgs e) 
    { 
     //Check for condition here & redirect if needed 

     if (!IsPostBack) 
     { 
      //Load data & bind stuff here 
     } 
    } 
+0

사이트의 모든 페이지에서 전 세계적으로 어떻게됩니까? – Nugs

+1

slfan이 맞습니다. 모든 페이지에서 원하는 경우 global.asax의 해당 메소드에 검사를 추가 할 수 있습니다. 다른 옵션은 마스터 페이지 또는 기본 페이지 클래스에 넣습니다 (모든 페이지에서 사용하는 경우). –

1

에있을 것입니다 그 논리를 넣어 올바른 장소. 이 경우 Global.asax에서 이벤트를 사용합니다.

protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
    } 

또는 당신은 단지 로그인 후에 그것을 확인해야하는 경우 (경우에 인증과 관련이있다)

protected void Application_AuthenticateRequest(object sender, EventArgs e) 
    { 
    } 

것은, 당신은 OnLoggedIn에 대한 이벤트 핸들러를 구현할 수있다.

세 번째 가능성은 모든 asp.net 양식에 대한 추상 공통 기본 페이지를 구현하고 OnPageLoad 이벤트를 구현하는 것입니다. 모든 페이지에서 코드를 복사하는 것보다 낫습니다.

관련 문제