2010-08-01 5 views
2

여러 개의 .aspx 페이지로 구성된 ASP.NET 응용 프로그램이 있습니다. 그 .aspx 페이지 중 하나가 특정 IP 세트 만 액세스 할 수 있기를 원합니다. 이것이 가능한가?IIS의 단일 URL에 대해 IP 허용 목록을 작성하는 방법

웹 사이트 수준에서 IP 허용 목록을 사용할 수 있지만 애플리케이션의 단일 URL에 대한 IP 허용 목록을 사용할 수 있습니까?

답변

3

다음 리소스는 ASP.NET에서 클라이언트 IP를 탐지하는 방법을 보여줍니다 당신은 IP가 있으면

http://bytes.com/topic/asp-classic/answers/439176-how-get-clients-ip-address-asp-net

는 init 이벤트 기간 동안 아마, 당신의 선택의 저장 메커니즘에서 허용 목록을로드 (페이지에있는 경우) 및 IP는하지 않을 경우 페이지에 (과 같이 사용 HttpContext.Current.Response 응답, 일치하지 않을 경우 :

if (!mySafeIpList.Contains(clientIP)) 
{ 
    Response.Clear() 
    Response.StatusCode = (int)HttpStatusCode.Unauthorized 
    Response.End() 
} 

또는 단순히 올바른 페이지로 리디렉션 :

Response.Redirect("~/Head-Fake.aspx") 

이 정보가 도움이되기를 바랍니다.

1

앱 내 자신의 화이트리스트에 대해 Request.ServerVariables [ "REMOTE_HOST"]을 항상 확인할 수 있습니다.

3

안타깝게도 IIS를 통해 단일 페이지로 할 수는 없지만 (검증을 원할 경우 Serverfault.com에서 자세한 내용을 확인하십시오.) 프로그래밍 방식으로 처리하고 싶다면 Application_BeginRequest를 연결할 수 있습니다. 귀하의 global.asax 파일에. 요청 URL과 요청 IP 주소를 제한 사항과 비교하여 요청이 통과되면 요청을 계속 허용하십시오.

+1

+1 : 'Global.asax'에서 필터를 구현하라는 제안. – kbrimington

관련 문제