좋아, 내가 모든 것들에 대한 답변을 찾은 것 같아요. jpg, css, js에 대한 각 요청은 자신의 HttpContext를 실행하기 때문에 HttpContext.Current.Items ("UserCheck")에 대한 검사가 작동하지 않습니다. 그런 식으로 글로벌 플래그.
검색을 약간 수행 한 후에 훨씬 깨끗하고 일반적인 솔루션을 발견했습니다.
<modules runAllManagedModulesForAllRequests="false">
은 또한 당신이 추가 할 수 있습니다 당신이 당신의 모듈을 원하지 않는 경우가 stati 컨텐트 요청에 발사 할 당신이 섹션의 웹 설정에서 설정해야합니다 (느릅 나무는 페이지의 정적 리소스 포함) 귀하의 모듈 속성 : precondition = "managedHandler". 예 :
<add name="ReadUserSettings" type="namespace.to.type" preCondition="managedHandler" />
내 web.config에는 이러한 설정이 없습니다. 이제 또 다른 작은 문제에 봉착하게되었지만 이제는 무슨 일이 일어나고 있는지 더 잘 이해할 수있게되었습니다. 주제에 대해보다 구체적인 주제를 열어야합니다. 즉, .axd 처리기를 제외하는 방법입니다 (또는 WebResources.axd 핸들러는 커스텀 모듈을 실행하지 못하게한다. 왜냐하면 .axd 핸들러는 threated가 preCondition = "integratedMode, runtimeVersionv4.0"을 가지고 있기 때문에 코드를 관리하기 때문이다. 나는 그 모듈이나 다른 .axd 모듈을 해고하는 것을 원치 않는다.
아야! 그 아파요 ... 나는 DB를 가지고 아무것도하지 않고 있지만 쿠키를 읽고 사용자 지정 IPrincipal을 만듭니다 (역할, taks, 경로가있는 다중 애플리케이션). 그래서 플래그를 설정하는 것이 좋습니다. 문맥.항목을 처음부터 전체 프로세스를 건너 뛸 수 있습니다! 이렇게 나는 모든 httpmodules에서 일어난다 고 생각한다. 이미지, css, js 등과 같은 정적 파일조차도 각 요청에 대해 트리거된다. static.mysite.com과 같은 다른 도메인에 올려 놓았습니까? 이상한 방법으로는 정적 콘텐츠를 실행하는 httpmodules를 제외 할 수 없습니다. – Manight