programing

다음 예제에 포함된 이유는 무엇입니까?

skycolor 2023. 7. 11. 21:56
반응형

다음 예제에 포함된 이유는 무엇입니까?

?와일드카드는 인증되지 않은 사용자를 나타냅니다.*인증된 모든 사용자와 인증되지 않은 사용자를 나타냅니다.내 책에는 다음 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

반응형