다음을 통해 공유


허용되는 권한 집합 산정

중요중요

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

공용 언어 런타임은 관련 정책 수준의 코드 그룹 계층 구조를 검색하여 응용 프로그램 도메인과 어셈블리에 허용되는 권한 집합을 산정합니다. 응용 프로그램 도메인의 경우 관련 정책 수준은 엔터프라이즈, 컴퓨터 및 사용자입니다. 어셈블리의 경우 관련 정책 수준은 엔터프라이즈, 컴퓨터, 사용자 및 응용 프로그램 도메인입니다.

공용 언어 런타임은 다음 과정을 수행하여 허용되는 권한 집합을 산정합니다.

  1. 각 관련 정책 수준에 대해 공용 언어 런타임은 증명 정보가 제공하는 ID 정보를 사용하여 코드가 속한 그룹을 알아냅니다. 코드가 그룹의 멤버이면 해당 그룹이 일치하는 그룹이 됩니다.

    일치하는 그룹에 대한 검색은 모든 코드 그룹의 코드 그룹 계층 구조 맨 위에서 시작됩니다. 공용 언어 런타임은 일치하는 그룹이 있는 일부 부모 그룹의 자식 그룹까지 포함하여 계층 구조 내의 수준을 검색합니다.

  2. 계층 구조에서 일치하는 모든 그룹을 찾으면 일치하는 각 코드 그룹과 연결된 권한이 누적되는 방식(합집합)으로 결합되어 해당 정책 수준에 허용되는 권한 집합이 만들어집니다.

    Exclusive 또는 LevelFinal 특성이 코드 그룹에 적용된 경우 런타임에서는 허용되는 권한 집합을 다르게 계산합니다. 자세한 내용은 코드 그룹 특성을 참조하십시오.

  3. 그런 다음 공용 언어 런타임은 계층 구조 검색을 반복하여 각 정책 수준의 권한 집합에서 교집합을 구하여 응용 프로그램 도메인이나 어셈블리에 허용되는 권한 집합을 산정합니다. 최종 권한 집합에는 모든 정책 수준에 허용되는 권한만 포함됩니다.

다음 그림은 코드 그룹 계층 구조를 보여 줍니다. 여기서 Microsoft® Money는 모든 코드, Microsoft(게시자), Local Internet(영역) 및 Microsoft Money(이름)의 네 코드 그룹에 속한 멤버입니다. 지정한 정책 수준(기계, 컴퓨터 또는 응용 프로그램 도메인)에 허용되는 권한 집합은 이러한 코드 그룹 각각에 연결된 명명된 권한 집합의 누적된 결합(합집합)입니다.

코드 그룹 계층 구조

코드 그룹 계층 구조

참고 항목

개념

코드 그룹 특성

기타 리소스

보안 정책 관리