2008-11-10 4 views
2

httpmodule에서 주/호출 요청을 알 수있는 방법이 있습니까? 나는 단지 모듈 코드가 이미지와 스크립트가 아닌 메인 aspx 페이지로 실행되기를 원한다. ".aspx"에 대한 경로를 확인할 수 있지만 더 나은 방법이 있어야합니다.HttpModule 주/호출 요청을 확인하십시오.

답변

3

모듈에서 HttpContext.Current.Handler를 호출하여 페이지인지 확인할 수 있습니다. PostMapRequestHandler 이벤트 나 라이프 사이클의 나중 이벤트에서이 작업을 수행해야 할 것입니다.

또는 어떤 HttpHandlerFactory가 요청에 사용되고 있는지 확인할 수 있습니다. PageHandlerFactory 인 경우 논리를 실행할 수 있으며 그렇지 않으면 건너 뛸 수 있습니다.

+0

CurrentHandler 검사는 작동하며 PreRequestHandler 이벤트에서 선택하면 ok입니다. 나는 spring.net을 사용하고 있으므로 제 경우에는 스프링 페이지 처리기입니다. 그것을 확인하는 것은 aspx 확장을 검사하는 것과 비슷하지만 어쩌면 약간 더 깨끗합니다. 감사합니다. – Marshal

0

IIS는 이미지 및 스크립트 *에서 ASP.NET 처리기를 호출하지 않으므로 HTTPModule은 ASPX 요청에서만 실행해야합니다.

  • 포함 된 리소스로 제공되는 스크립트 (예 : webresource.axd)가 아니라면 말이지요.
+0

IIS6에서는 그렇지만 IIS7에서는 그렇지 않습니다. –

+0

OP는 그가 사용하는 버전을 분명히하지 않았습니다. 따라서 모든 요청에 ​​대해 ASP.NET 파이프 라인이 호출됩니까? 바보 같아. – FlySwat

+0

예 (aspx 및 기타) 모든 요청에 ​​대해 호출됩니다. 적어도 Visual Studio 통합 웹 개발 서버에 있습니다. – Marshal