2009-06-17 4 views
6

폼 인증에 완전히 뒤 따르는 ASP.NET MVC 앱이 있습니다. 그러나 (보안상의 이유로) 현재 사용자를 가장해야하는 통합 된 Windows 인증을 강제해야하는 경로 (/ report/%)가 하나 있습니다.ASP.NET MVC URL 및 IIS 통합 Windows 인증

전체 사이트를 통합 Windows 인증으로 설정하면 firefox가 사이트 홈 페이지를 방문 할 때마다 사용자 이름/비밀번호를 두 번 묻는 것을 제외하고는 모두 작동합니다 (Windows 인증의 경우 한 번, 양식 인증의 경우 다시). IE는 폼 인증을 요구합니다. 이것은 괜찮습니다. 그러나 이것이 파이어 폭스의 기본 동작이라는 것을 알고 있습니다. 그러나 anoy 사용자에게는 Windows 인증 요구 사항을 사이트의/report/* 섹션으로 제한하라는 요청을 받았으므로 프롬프트가 표시됩니다./report/% 내의 모든 페이지로 이동합니다.

ASP.NET WebForms에서는 인증 설정을 적용 할 물리적/보고서 폴더가 있기 때문에 충분히 쉽지만 MVC에서는이 URL이 가상이므로이 작업을 수행 할 수 없습니다. 누구든지이 일을하는 좋은 방법을 알고 있습니까? 필자는 사용자가 적절한 보고서 페이지로 리디렉션하기 전에 먼저 통과해야하는 "게이트웨이"aspx 페이지를 만들려고 시도했습니다. Firefox가 사용자에게 적절한 시점에 Windows 자격 증명을 묻는 메시지를 표시하지만 유지하지는 않습니다. 후속 요청에 대한 세부 정보를/report/% 페이지 중 하나로 보냅니다. 어떤 아이디어? 슈퍼 감사하게 될 것입니다!

답변

5

최근에는 비슷한 것을해야했습니다. 나는 asp.net MVC 애플 리케이션의 대부분을 폼 인증으로 요구했고, 윈도우 인증이 필요한 부분이 하나있다.

내가 한 일은 내 웹 앱을 두 개의 프로젝트로 분할하는 것이 었습니다.

첫 번째 프로젝트는 IIS 아래의 웹 사이트 루트에 호스팅되었습니다. 이것은 폼 인증을 실행 중입니다.

두 번째 프로젝트는 동일한 웹 사이트의 가상 디렉터리로 호스팅되었습니다. Windows 인증이 실행 중입니다.

/reports/reports/% (또는 사용자가 가상 ​​디렉터리의 이름을 지정하는 URL)로 끝날 수 있다는 단점이 있습니다.