2013-06-19 1 views
0

FormsAuthentication을 구현하려고하는데 이상한 동작이 발생합니다. 이러한 web.config에서 라인입니다FormsAuthentication 모든 페이지에 대한 액세스 허용

<authentication mode="Forms"> 
    <forms loginUrl="/contentpages/login.aspx" name="SiteAuth" protection="All" timeout="30" path="/" defaultUrl="/" requireSSL="false" cookieless="UseCookies" enableCrossAppRedirects="false" /> 
    </authentication> 
    <authorization> 
    <allow users="?" /> 
    </authorization> 

그래서, 내가 바로 그것을 얻을 경우,이 모든 익명 사용자가 루트와 그 아래 페이지에 액세스 할 수 있도록해야한다.

사이트 기본 페이지 (http://www.sample.com/)에 액세스하면 어떤 이유로 로그인 페이지로 리디렉션됩니다. 주소 표시 줄에 주소를 다시 입력하면 사이트 홈페이지로 이동합니다 (로그인 할 필요없이 로그인 페이지에 접속했을 때 주소에 주소를 다시 입력 함). 바)

왜 이런 일이 발생합니까?

나는 상황이 무엇인지 명확하게 알기를 바랍니다. 더 많은 정보가 필요하면 언제든지 물어보십시오.

+0

호기심, 당신은 동일한 동작합니까 익명 사용자에 대한 권한 부여 규칙을 제거 할 때? – trnelson

+0

아니요, 권위가 없기 때문에 권위가 없기 때문에 같은 일을하지 않을 것입니다. 그러나 그것은 여전히 ​​흥미 롭습니다. – Dementic

답변

1

위치를 지정하지 않아이 기능이 표시 될 수 있습니다. 사용해보기 :

<location path="your folder"> 
    <system.web> 
    your authorization 
    </system.web> 
</location> 

또 다른 문제는 권한 부여 방법입니다. "?" 모든 인증되지 않은 사용자를 대상으로합니다. 단순히 모든 사용자에게 액세스 권한을 부여하려는 경우 "*"를 사용하는 것이 좋습니다.

이러한 규칙이 계단식으로 적용된다는 점에 유의해야합니다. 따라서 여러 규칙을 추가하여 액세스를 미세 조정할 수 있습니다. 나는 특정 사용자 그룹에 대한 액세스 권한을 부여하고 모든 사람에게 액세스를 거부하고 싶었 예를 들어, 다른 나는 사용한다 :

<authorization> 
    <allow roles="administrators" /> 
    <deny users="*" /> 
</authorization> 
+0

문제는 모든 페이지에 대한 액세스를 허용하고 두 페이지 만 권한 부여하려는 것입니다. 'Location' 태그를 추가하면 500 에러가 발생합니다 (심지어'Configuration' 섹션에 추가하기가 어렵습니다.) 또한, 여전히 행동을 설명합니다. – Dementic

+0

사용자를 허용하여 위치 경로 = "사이트 루트 폴더"를 추가 할 수 있어야합니다 = "*"그런 다음 거부하려는 각 페이지마다 다른 위치를 만드십시오. 설정 한 각 권한이 이전 권한의 위에 작성되도록 계단식으로 표시됩니다. 수신중인 오류 메시지를보고 싶습니다. 서버의 브라우저에서 전체 오류 메시지를 볼 수 있어야하는 페이지를 볼 수 있습니다. – LoganGoesPlaces

+0

오류는 '벙어리'오류입니다. 서버 오류 500 - 내부 서버 오류 문제가 있습니다. 찾고있는 리소스이며 표시 할 수 없습니다. – Dementic