2010-11-19 2 views
0

내가 실행하기 위해 노력하고있어 (아무 캐치로, try 블록에 있지만 결국) 하위 페이지가 다음 중 하나를 실행하려고server.execute의 자식이 Server.Transfer 또는 handler.ProcessRequest 또는 Response.Redirect를 호출하면 어떻게됩니까?

HttpContext.Current.Server.Execute(child1, tw, true); 

:

context.Response.Redirect(child2.uri.ToString()); 
handler.ProcessRequest(context); //context has had items added to update querystring 
context.Server.Transfer(child2.uri.ToString()); 

내가 기대할 수를 내 원래 페이지로 돌아 가기위한 제어? 일단 코드가 Server.Transfer에 도달하면 내 finally 블록의 원래 부모 페이지로 되돌아갑니다 (그러나 내 Server.Execute가 건너 뛴 후에 코드가 나타남).

참고로, 첫 번째 하위 페이지는 리다이렉트하면 제대로 작동하지만 로그인 장벽을 넘기 위해서는 쿠키를 전달해야합니다 (Server.Execute를 우회하려고합니다).

이러한 중첩 된 실행과 전송 및 리디렉션의 예상되는 동작은 무엇입니까?

답변

0

내 질문에 대답 :

예. 자식 요청이 처리를 끝내면 결국 Execute가 다시 제어권을 갖게됩니다. Server.Transfer의 경우 자식 요청을 전송하지만 부모는 전송하지 않습니다.