다음을 통해 공유


응용 프로그램 도메인 호스트

중요중요

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

각 .NET Framework 응용 프로그램은 응용 프로그램 도메인 내에서 호스트의 제어를 받으며 실행되는데, 이 호스트는 응용 프로그램 도메인을 만들어 이 안으로 어셈블리를 로드합니다. 호스트는 응용 프로그램 도메인에 있는 어셈블리의 디지털 서명이나 코드가 발생한 영역과 같은 코드 정보(증명 정보)에 액세스할 수 있습니다. 신뢰할 수 있는 호스트란 이러한 종류의 정보를 공용 언어 런타임에게 제공할 권한이 있는 호스트입니다. System.AppDomain 클래스는 호스트가 사용하는 응용 프로그램 도메인 기능을 제공합니다.

다음 표는 응용 프로그램 호스트의 유형을 나타냅니다.

응용 프로그램 도메인 호스트

설명

브라우저 호스트(예: Microsoft Internet Explorer)

웹 사이트 컨텍스트 내에서 코드를 실행합니다.

사용자 지정 호스트

도메인을 만들고 동적 어셈블리를 비롯한 어셈블리를 도메인에 로드합니다. 관리 코드 또는 비관리 코드로 작성할 수 있습니다.

서버 호스트(예: ASP.NET)

서버에 제출된 요청을 처리하는 코드를 실행합니다.

셸 호스트

셸에서 응용 프로그램(.exe 파일)을 시작합니다.

호스트는 새 응용 프로그램 도메인을 만든 후 응용 프로그램 도메인 내에서 코드에 적용할 정책을 지정할 수 있습니다. 이 정책은 항상 엔터프라이즈, 컴퓨터 및 사용자 정책을 따릅니다. 호스트는 컴퓨터 및 사용자 정책이 허용하는 권한 집합을 축소할 수는 있지만 확장할 수는 없습니다. 응용 프로그램 도메인에 대해 정책을 한 번밖에 설정할 수 없습니다. 응용 프로그램 도메인 정책을 설정하려면 도메인 정책을 제어할 수 있도록 SecurityPermission 클래스를 통해 제공되는 보안 권한이 호스트에 부여되어야 합니다.

응용 프로그램 도메인 정책이 설정되면 이후에 로드되는 어셈블리는 새 엔터프라이즈, 컴퓨터, 사용자 및 응용 프로그램 도메인 정책에 따라 권한이 부여됩니다. 이전에 로드된 어셈블리는 기존 정책(엔터프라이즈, 컴퓨터 및 사용자 정책만 해당)에 따라 권한이 부여됩니다. 이들 어셈블리에 부여된 권한은 새 응용 프로그램 정책에 따라 다시 평가하지 않습니다.

신뢰할 수 있는 호스트는 응용 프로그램 도메인에 로드된 어셈블리에 대한 정보(증명 정보)를 공용 언어 런타임에게 제공할 수 있습니다. 도메인 호스트에 증명 정보를 제어할 수 있는 적절한 SecurityPermission이 없으면 런타임은 호스트에 적용된 보안을 사용하여 어셈블리에 적용할 보안을 결정합니다.

일반적으로 신뢰할 수 있는 응용 프로그램 도메인 호스트가 제공하는 증명 정보를 실제로는 로더가 제공하는 경우도 있습니다. 대개 응용 프로그램 도메인이 만들어진 후, 응용 프로그램 도메인 호스트는 첫 번째 주 어셈블리를 응용 프로그램 도메인에 로드하고 이 어셈블리를 호출하여 실행하기 시작합니다. 첫 번째 어셈블리의 코드가 다른 어셈블리의 코드를 참조할 경우, 로더는 참조를 확인하고 적절한 어셈블리를 응용 프로그램 도메인으로 로드하여 어셈블리에 대한 증명 정보를 공용 언어 런타임에 제공합니다. 이 경우 원본 어셈블리에 대한 증명 정보를 제공한 신뢰할 수 있는 응용 프로그램 도메인 호스트는 이후에 로드된 어셈블리에는 증명 정보를 제공하지 않습니다.

참고 항목

참조

System.AppDomain

기타 리소스

보안 정책 관리