다음 예제에 포함된 이유는 무엇입니까?
그?
와일드카드는 인증되지 않은 사용자를 나타냅니다.*
인증된 모든 사용자와 인증되지 않은 사용자를 나타냅니다.내 책에는 다음 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"
해당 사용자에게 액세스 권한을 부여합니다.마지막으로, 모든 사용자에 대한 액세스를 거부합니다.댄, 매튜를 제외한 모든 사람들이 접근을 거부당했기 때문입니다.
추가하기 위해 편집됨: @Deviant가 지적했듯이 마지막 항목에도 인증되지 않은 항목이 포함되어 있기 때문에 인증되지 않은 항목에 대한 액세스를 거부하는 것은 의미가 없습니다.이 주제에 대해 논의하는 좋은 블로그 항목은 구루 사카르의 블로그에서 찾을 수 있습니다.
"실행 시 권한 부여 모듈은 가장 로컬 구성 파일부터 시작하여 특정 사용자 계정에 맞는 첫 번째 액세스 규칙을 찾을 때까지 허용 및 거부 요소를 반복합니다.그런 다음, 권한 부여 모듈은 발견된 첫 번째 액세스 규칙이 허용 규칙인지 거부 규칙인지에 따라 URL 리소스에 대한 액세스를 허용하거나 거부합니다.기본 권한 부여 규칙은 입니다.따라서 다른 구성이 없는 한 기본적으로 액세스가 허용됩니다."
MSDN 문서
deny = * means deny everyone
deny = ? means deny unauthenticated users
첫 번째 예에서 거부 *는 이전 규칙에 의해 이미 허용되었기 때문에 댄, 매튜에게 영향을 미치지 않습니다.
문서에 따르면 두 규칙 집합에 차이가 없습니다.
예 1은 양식 인증을 사용하는 asp.net 응용 프로그램에 대한 것입니다.사용자는 일부 보안 모듈에 대해 인증될 때까지 인증되지 않으므로 인터넷 응용프로그램에서 일반적인 방법입니다.
예 2는 윈도우즈 인증을 사용하는 asp.net 응용 프로그램에 대한 것입니다.Windows 인증은 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
언급URL : https://stackoverflow.com/questions/831994/why-is-deny-users-included-in-the-following-example
'programing' 카테고리의 다른 글
아님:첫 번째 자식 선택기 (0) | 2023.07.11 |
---|---|
봄 @Bean(이름 ="이름") vs @Bean @Qualifier("이름") (0) | 2023.07.11 |
PostgreSQL을 사용하여 문자열을 정수로 캐스팅하고 캐스트에서 오류가 발생할 경우 0을 가지려면 어떻게 해야 합니까? (0) | 2023.07.11 |
외부 CSS 파일을 참조하지 않고 WordPress PHP 파일에서 인라인 CSS를 만들려면 어떻게 해야 합니까? (0) | 2023.07.11 |
처음 실행 시 플라스크: 프로덕션 환경에서 개발 서버를 사용하지 않음 (0) | 2023.07.11 |