2009-10-15 2 views
0

이것은 실제로 해킹 일 수도 있지만 필사적이 될 수도 있습니다.요청이 페이지로 이동하는 것을 방지 할 수 있습니까?

요청이 실제로 실제 페이지를 치는 것을 방지 할 수 있습니까? 즉, Application_BeginRequest에 I 나머지 라이프 사이클을 건너 뛰고 싶습니까?

아, 그것은 아약스 업데이트 패널이 적합을 던져 않는 방식으로 그것을 할

확인 ("미안 아무 짓도하지 않았습니다"라고 일부 기본 콘텐츠를 반환) 할 수 있으며, 미친 질문.

답변

1

요청 처리 흐름 앞에 HTTPModule을 작성하여 처리하는 것이 좋습니다.

+0

HTTPModule을 지나치는 요청이 어떻게 차단 될 수 있습니까? – Paul

+1

@IP - Response.CompleteRequest가 요청을 중지합니다. – David

0

물론, 단지으로 Response.End()를 호출 :

protected void Application_BeginRequest(object sender, EventArgs e) 
{ 
    if (Request.Url.AbsolutePath.Equals("/PageYouWantToSuppress.aspx", StringComparison.OrdinalIgnoreCase)) 
    { 
     // Do your stuff 

     Response.End(); 
    } 
} 

ETA : 나는 당신의 질문의 된 UpdatePanel 부분에 대해 확실하지 않다.

+0

그래, 이건 내가 시도한 - 작동하는 것 같지만 업데이트 패널에 필요한 것을 반환하지 않습니다. 누구나 업데이트 패널이 행복 할 필요가 있는지 아는 사람은 누구입니까? – Paul

2

이 같은 부분 페이지 업데이트 중에 실행에서 코드의을 부분을 방지 할 수 있습니다 :

if (! ScriptManager.IsInAsyncPostBack) { 
    // Code in here won't happen during UpdatePanel actions 
} 

UpdatePanels으로 설계된 ASP.NET 페이지 수명주기의 대부분을 실행합니다. 예를 들어 Response.End()을 통해 해당 프로세스를 중단하면 요청이 완료되지 않으므로 클라이언트는 페이지의 HTML을 업데이트하는 데 필요한 데이터를 얻지 못합니다.

만약 UpdatePanel ASP.NET의 서버 측에있어서 트리거

가하는 다음

  1. 정상적인 ASP.NET 페이지주기를 통해 실행함으로써 처음부터 패널 내의 페이지의 일부를 재구성 (잘, 약간 요약하지만 가까운).
  2. 패널의 HTML을 클라이언트로 다시 보냅니다.
  3. javascript DOM 조작을 사용하여 클라이언트에서 패널을 다시 작성합니다.

전체 페이지 수명주기를 거치지 포함하지 않는 UpdatePanel AJAX 구현에 대한 몇 가지 대안이있다

(자세한 내용은 my recent answer to this question를 참조하고, 자세한 내용은 UpdatePanel Control Overview 또는 this article 참조). 가장 인기있는 것은 Using jQuery to directly call ASP.NET AJAX page methods입니다.

jQuery를 AJAX 호출에 사용하면 UpdatePanels보다 금속에 더 가까이 다가 갈 수 있지만 StackOverflow 자체 및 Encosia (마지막 링크의 소스)에서 시작하는 데 많은 도움이됩니다. .

관련 문제