다음을 통해 공유


부여되는 권한 결정

중요중요

.NET Framework 버전 4에서 CLR(공용 언어 런타임)은 더 이상 컴퓨터의 보안 정책을 제공하지 않습니다.Microsoft는 CLR 보안 정책 대신 Windows 소프트웨어 제한 정책을 사용하는 것을 권장합니다.이 항목의 내용은 .NET Framework 버전 3.5 및 이전 버전에만 적용되고 버전 4 및 이후 버전에는 적용되지 않습니다.이 변경 내용 및 다른 변경 내용에 대한 자세한 내용은 .NET Framework 4의 보안 변경 내용을 참조하십시오.

응용 프로그램 도메인의 경우에는 부여되는 권한 집합은 허용되는 권한 집합뿐입니다.

어셈블리의 경우에는 어셈블리를 로드할 때 공용 언어 런타임이 다른 요소를 고려하여 부여되는 권한 집합을 결정합니다. 어셈블리에는 코드가 원하거나 필요로 하는 권한을 지정하는 선언적 보안 요청이 포함될 수 있습니다. 다음 표는 코드가 요청할 수 있는 권한 집합에 대해 설명합니다.

권한 집합

설명

필수

코드를 실행하기 위해 필요한 최소한의 권한 집합을 지정합니다.

Optional

최소 집합 이외에 코드가 원하는 권한을 나타냅니다. 이에 따라 최소 집합이나 선택적 집합에서 식별되지 않은 모든 권한은 암시적으로 거부됩니다.

Refused

코드에 절대 부여해서는 안 되는 권한을 지정합니다.

세 가지 권한 요청이 모두 없는 경우 어셈블리에는 해당 정책이 허용하는 권한 집합이 부여됩니다. 그러나 세 가지 권한 요청 중 하나라도 있으면 공용 언어 런타임은 다음 과정에 따라 요청된 권한을 고려합니다.

  1. 공용 언어 런타임은 어셈블리에 허용되는 권한을 산정하고 어셈블리에 실행할 권한이 있는지 확인합니다. 실행할 권한이 없을 경우 공용 언어 런타임은 PolicyException을 throw하며 코드는 실행될 수 없습니다.

  2. 공용 언어 런타임은 필요한 권한 집합이 허용되는 권한 집합의 하위 집합인지 파악합니다. 하위 집합이 아닌 경우 공용 언어 런타임은 PolicyException을 throw하고 코드는 실행될 수 없습니다.

  3. 공용 언어 런타임은 선택적인 요청된 권한과 허용되는 권한 집합의 교집합을 구합니다. 선택적 권한이 필요하지 않으면 선택적 PermissionSet이 FullTrust로 간주됩니다.

  4. 공용 언어 런타임은 3단계의 결과와 요청된 최소 권한의 합집합을 구합니다.

  5. 마지막으로 공용 언어 런타임은 4단계에서 거부된 권한을 뺀 차집합을 구합니다.

참고 항목

참조

PolicyException

기타 리소스

보안 정책 관리