2014-06-24 2 views
1

IIS 7에서 .Net 4.0을 사용하여 ASP.NET 폼 인증을 사용하는 웹 사이트가 있습니다. 제 3 자 싱글 사인온 (jasig CAS)을 사용하여 사이트를 보호했으며 모든 것이 잘 작동합니다.내 웹 사이트의 루트 페이지에 대한 권한을 어떻게 받습니까?

IIS의 기본 문서 목록은 맨 위에 Default.aspx가 있습니다.

웹 사이트의 기본 페이지는 Default.aspx이며 내 web.config에서 아래 스 니펫을 사용하여 일반인에게 공개됩니다. 다시이 페이지로 직접 이동할 때 예상대로 작동합니다.

<location path="Default.aspx"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 

제가하는 데 문제는 내가 www.mydomain.com 아니라 보다는 www.mydomain.com/default.aspx 즉 내 웹 사이트의 루트를 탐색 할 때 내가 리디렉션하고 있다는 것입니다 폼 인증 페이지.

분명히이 페이지는 동일한 페이지이며 동일한 승인 규칙의 적용을 받습니까?

나는 이것에 붙어있어 어디서 돌아야할지 모르겠다.

+0

몇 가지 질문 .. 1. Default.aspx가 프로젝트의 기본 시작 페이지로 설정되어 있습니까? 2. 프로젝트 속성/빌드를 볼 때 Visual Studio에서 무엇을 어떻게 설정합니까? 3. MasterPages를 사용하고 있습니까? 당신은이 코드를 통해 디버깅을 했습니까? – MethodMan

+0

Default.aspx는 프로젝트의 기본 시작 페이지입니다. 마스터 페이지를 사용하고 있습니다 (이 방법이 어떻게 도움이되는지 확신 할 수 없음). 페이지 인증 전에 폼 인증이 시작되어 충돌 할 수있는 중단 점이 없습니다. – KerSplosh

답변

0

이 코드를 사용하여 종료합니다 (위와 같음), CasAuthenticationModule의 OnBeginRequest 메소드에 들어가야 만했다.

if (Request.AppRelativeCurrentExecutionFilePath == "~/") 
    HttpContext.Current.RewritePath("default.aspx"); 
2

스택 오버플로에서 비슷한 질문이있다 :

의 Global.asax에서 Allowing anonymous access to default page

, Application_BeginRequest 방법에 다음 코드를 배치 :

if (Request.AppRelativeCurrentExecutionFilePath == "~/") 
    HttpContext.Current.RewritePath("default.aspx"); 
+0

잘 찾아 냈습니다! 나는 게시하기 전에 이것을 찾기 위해 반나절을 보냈다! – KerSplosh

+0

현재 .NET jasig 클라이언트를 사용중인 경우 jasig .NET 클라이언트가 global.asax에서 시작 요청 전에 http 요청 파이프 라인을 가로 채기 때문에이 수정 프로그램이 나에게 도움이되었습니다. dev 환경에 있지만 준비에 실패 했으므로 이제이 대답을 받아 들일 수 없습니다. – KerSplosh

관련 문제