2009-08-25 2 views
1

우리는 "URL 재 작성"을 수행하는 것이 유일한 목적 인 HTTPModule을 보유하고 있습니다. HTTPModule의 정의에 따라 모든 브라우저 요청 (html, css, javascript, images 등)은이 클래스의 이벤트 처리기를 통과합니다.Profile_OnMigrateAnonymous 이벤트가 여러 번 발생하는 경우

로그인 프로세스 중에 Global.asax의 Profile_OnMigrateAnonymous 이벤트 처리기에서 사용자가 "익명"사용자에서 "로그인 한"사용자로 전환하는 순간을 파악하고 있습니다. 우리가 발견 한 한가지 문제점은 사용자가 로그인 할 때 Profile_OnMigrateAnonymous 이벤트가 발생한다는 것입니다. 요청한 모든 리소스 (즉, HTML, CSS, 자바 스크립트, 이미지 등)가 사용자에게 표시됩니다. 이 사건이 오직 한 번만 불길 것이라는 걸 이해하고있었습니다. 왜 여러 번 발사할까요? 등록 된 "url rewriting"HTTPModule의 결과입니까? 해당 이벤트를 한 번만 실행하도록 응용 프로그램을 구성 할 수있는 방법이 있습니까?

답변

1

정상적인 리소스 요청 (css/js/img 등)의 경우 IIS가 요청을 직접 처리합니다. asp_net 작업자 요청에 특정 파일 이름 (예 : .aspx 및 .asmx) 만 전달합니다.

HTTPModule은 기본적으로 IIS가 모든 요청을 작업자 프로세스로 전달하도록하므로 각 요청이 Profile_OnMigrateAnonymous를 시작합니다.

Profile_OnMigrateAnonymous에 대한 호출을 무시할 수는 없지만 .aspx/.ascx 등의 파일 이름을 확인하고 지정된 실제 작업을 수행하는 코드를 구현할 수 있습니다.

관련 문제