2009-06-15 3 views
2

IIS6에서 MVC를 사용하고 있습니다. 현재 사이트가 열리고 있지만 사이트의 등록 부분에 대한 액세스를 제한해야하지만 등록 할 수있는 사용자 (즉, 사무실 내)는 여전히 로그인하여 사이트를 완전히 사용할 수 있습니다.IIS6을 사용하는 ASP.NET MVC : 단일보기 (레지스터)에 대한 액세스 차단

그래서 내부 사무실은 레지스터와 다른 모든 사이트에 액세스 할 수 있습니다. 외부 사무실은 레지스터에 액세스 할 수 없지만 다른 모든 사이트에 액세스 할 수 있습니다.

처음에는 우리 사무실의 IP에 대한 파일 제한을 views \ accounts 폴더의 register.aspx 파일에 저장합니다. 우리는 이것이 작동하고 있음을 확신했지만, 오늘은 그렇지 않다는 것을 발견했습니다! 그것에 대해 실제로 생각하는 것이 합리적입니다!

이렇게 가능합니까?

views \ accounts 폴더에있는 다른 aspx 페이지는보기로 사용 가능해야하며 레지스터보기 만 차단해야합니다.

희망적이라고 생각하세요! ASP.NET MVC로 정의

답변

2

URL은보기 페이지가있는 폴더 나 파일을 기반으로 구성하고 수 없습니다. 이것은 IIS를 사용하여이보기 페이지에 대한 액세스를 구성 할 수 없음을 의미합니다. 컨트롤러에 대한 액세스를 필터링 할 수 있습니다 (보기 페이지에서 호출하는보기 페이지도 간접적으로 필터링 할 수 있습니다). 이는 Action Filtering으로 완료됩니다. 사용자 지정 작업 필터를 만드는 방법에 대한 설명 see this page.

그렇기 때문에 IP 주소에 따라 특정 페이지에 대한 액세스를 제한 할 수 있습니다.

+0

어떻게? 어떤 예도 있습니까, 나는 IP 주소를 기반으로 몇 가지보기 페이지를 제한하고 싶습니다. – Miral

1

이전에 이러한 상황에 직면 해 왔지만 응용 프로그램 작성 방식으로 문제가 해결되었습니다.

우리는 "일부 정보가 표시되었습니다"및 "데이터를 관리하는 방법"으로 응용 프로그램을 만들었을 때마다 항상 비즈니스 로직 상단에 별도의 UI 프로젝트를 만들었습니다. 이는 유지 보수성을 돕는 것뿐만 아니라 공용 비트를 공개 웹 사이트에 배포 할 수 있으며 관리 비트는 네트워크를 통해 액세스 할 수 있으므로 외부 액세스가 전혀 필요하지 않습니다.

예제에서 두 개의 논리 요소를 추출하면 IIS에 서로 다른 액세스 규칙을 가진 두 개의 개별 웹 프로젝트를 배포 할 수 있습니다.

또 다른 옵션은 제한된 페이지에 대한 실행 코드에서 IP 주소를 확인하는 것입니다. IP 주소는 스푸핑 될 수 있으므로 완전히 안전한 솔루션은 아닙니다.

관련 문제