2016-09-27 6 views
0

내 시나리오는 이미 개발 된 웹 사이트 (사용자 IP 주소 Request.UserHostAddress에 많이 의존하는)가 CloudFlare 프록시 뒤에 배포된다는 것입니다. 따라서 이제 CloudFlare의 원래 IP 헤더가 있는지 확인해야합니다.액션 필터 또는 모듈에서 요청 IP/요청 컨텍스트를 변경할 수 있습니까?

조치를 취하기 전에 실행할 수있는 필터/모듈을 작성하고자하므로 코드를 수정할 필요가 없습니다. 필터/모듈이 UserHostAddress을 헤더의 값으로 대체해야합니다.

그러나 Action Filter가 실제로 Requeset UserHostAddress를 수정할 수 있는지, 또는 RequestContext 개체 생성을 무시할 수있는 항목을 찾을 수 있는지 여부는 알 수 없습니다.

조치 필터 및/또는 IIS 모듈을 통해이를 수행 할 수 있습니까? 있다면, 어떤 키워드를 찾아야합니까?

답변

0

HttpRequest 클래스의 UserHostAddress 속성은 읽기 전용이므로 변경할 수 없지만 HttpRequest 클래스에 확장 메서드를 추가하고 기본적으로 UserHostAddress에서 해당 메서드를 읽고 특정 헤더 나 경로 데이터가 있습니다 (예 : OriginalUserHostAddress). 그런 다음 해당 값을 반환합니다.

조치 필터 내부에서 방화벽 헤더를 점검하고 존재하는 경우 경로 데이터 변수 또는 임시 데이터 변수를 설정하고 확장 방법에서 읽을 수 있습니다.