문제

그만큼 ? 와일드 카드는 무단 사용자를 나타냅니다 * 인증 및 무단으로 모든 사용자를 나타냅니다. 내 책은 URL 승인의 다음 예를 보여줍니다.

<authorization>
  <deny users="?" />
  <allow users="dan,matthew" />
  <deny users="*" />
</authorization>


그러나 위의 코드는 다음과 같은 영향을 미치지 않습니다.

<authorization>
  <allow users="dan,matthew" />
  <deny users="*" />
</authorization>

또는 저자도 포함 했습니까? <deny users="?" /> 이유가있는 규칙?

도움이 되었습니까?

해결책

ASP.NET은 구성 파일에서 우선 순위로 액세스 할 수 있습니다. 잠재적 충돌의 경우, 첫 번째 보조금이 우선합니다. 그래서,

deny user="?" 

익명 사용자에 대한 액세스를 거부합니다. 그 다음에

allow users="dan,matthew" 

해당 사용자에게 액세스 할 수 있습니다. 마지막으로 모든 사람에 대한 접근성을 거부합니다. 이것은 Dan을 제외한 모든 사람으로서 Matthew는 접근이 거부됩니다.

추가로 편집 : 그리고 @deviant가 지적한 것처럼, 마지막 항목에는 무의미한 것이 포함되어 있기 때문에, 무단에 대한 접근을 거부하는 것은 무의미합니다. 이 주제를 논의하는 좋은 블로그 항목은 다음에서 찾을 수 있습니다. 구루 사르 카르의 블로그

다른 팁

"실행 시간에 인증 모듈이 특정 사용자 계정에 맞는 첫 번째 액세스 규칙을 찾을 때까지 가장 로컬 구성 파일에서 시작하여 허용 및 거부 요소를 통해 반복됩니다. 그런 다음 인증 모듈이 발견 된 첫 번째 액세스 규칙이 허용 또는 거부 규칙인지에 따라 URL 리소스는 기본 승인 규칙이 있습니다. 따라서 기본적으로 달리 구성되지 않으면 액세스가 허용됩니다. "

기사 MSDN

deny = * means deny everyone
deny = ? means deny unauthenticated users

첫 번째 예에서 거부 *는 Dan, Matthew가 이전 규칙에 의해 이미 허용 되었기 때문에 영향을 미치지 않습니다.

문서에 따르면 여기에는 두 가지 규칙 세트에 차이가 없습니다.

예 1은 Forms 인증을 사용하는 ASP.NET 응용 프로그램에 대한 것입니다. 사용자가 일부 보안 모듈에 대해 인증 될 때까지 사용자가 승인되지 않기 때문에 인터넷 애플리케이션의 일반적인 관행입니다.

예 2는 Windows 인증을 사용하여 ASP.NET 응용 프로그램입니다. Windows Authentication은 Active Directory를 사용하여 사용자를 인증합니다. 의지는 신청서에 대한 액세스를 방지합니다. 이 기능을 인트라넷 응용 프로그램에서 사용합니다.

이 두 링크를 참조하십시오.

인증 요소 거부 (ASP.NET 설정 스키마) http://msdn.microsoft.com/en-us/library/vstudio/8aeskccd%28v=vs.100%29.aspx

인증에 대한 요소 허용 (ASP.NET 설정 스키마) : http://msdn.microsoft.com/en-us/library/vstudio/acsd09b0%28v=vs.100%29.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top