trust 요소(ASP.NET 설정 스키마)

응용 프로그램에 적용되는 CAS(코드 액세스 보안) 수준을 구성합니다. Full보다 신뢰 수준이 낮은 웹 응용 프로그램을 실행하려면 이 요소를 사용합니다.

<trust 
   hostSecurityPolicyResolverType ="security policy resolution type"
   legacyCasModel = "[True|False]"
   level="[Full|High|Medium|Low|Minimal]" 
   originUrl="URL"
   permissionSetName = "name of the permission set"
   processRequestInApplicationTrust = "[True|False]" 
/>

특성 및 요소

다음 단원에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.

특성

특성

설명

hostSecurityPolicyResolverType

선택적 문자열 특성입니다.

사용자 지정 보안 정책 확인 형식을 지정합니다. 이 특성이 빈 문자열로 설정되면 ASP.NET은 기본 정책을 사용하여 어셈블리 권한을 확인합니다. 권한 확인에 대한 기본 정책에서는 GAC(전역 어셈블리 캐시) 어셈블리에는 완전 신뢰, 기타 어셈블리에는 부분 신뢰를 부여합니다.

이 특성을 null 값으로 설정할 수 없습니다.

기본값은 빈 string입니다.

legacyCasModel

선택적 부울 특성입니다.

레거시 CAS(코드 액세스 보안) 보안을 사용할지 여부를 지정합니다.

레거시 코드 액세스 보안을 사용하면 다음과 같은 보안 규칙이 적용됩니다.

  • 코드 액세스 보안 (CAS) 정책은 컴퓨터 정책 및 지정된 ASP.NET 부분 신뢰 정책 파일의 조합을 통해 수립됩니다.

  • 부분 신뢰 응용 프로그램 도메인은 응용 프로그램 도메인 수준에서 완전 신뢰되는 것으로 되돌아갑니다.

  • .NET Framework 설치 디렉터리의 CONFIG 디렉터리에 있는 레거시 부분 신뢰 파일은 같은 디렉터리에 있는 새 부분 신뢰 구성 파일 대신에 사용됩니다. 레거시 파일에는 .NET Framework 버전 1.1 또는 .NET Framework 2.0 SP1에서 발견된 멤버 자격 조건이 포함됩니다.

  • 권한을 평가하는 추가 멤버 자격 조건이 적용됩니다. 이러한 조건은 ASP.NET 부분 신뢰 파일에 정의됩니다. .NET Framework 4 릴리스와 함께 제공되는 CONFIG 디렉터리에 레거시 부분 신뢰 정책 파일이 포함되어 있습니다. 이러한 파일은 이름에 레거시가 있으며 .NET Framework 2.0 SP1 섹션을 포함합니다. 이 영역에는 어셈블리에 대한 CAS 정책을 평가하는 데 필요한 비어 있지 않은 멤버 자격 조건이 들어 있습니다.

  • ASP.NET 응용 프로그램이 부분 신뢰에서 실행되고 있고 신뢰 수준에 대한 보안 정책이 기본 부분 신뢰 구성 파일 중 하나에 매핑되는 경우 ASP.NET은 해당 레거시 구성 파일을 자동으로 선택합니다. 예를 들어 보안 정책이 일반적으로 Web_mediumtrust.config에서 로드되는 경우에는 레거시 모드에서 ASP.NET가 Legacy.web_mediumtrust.config에서 보안 정책을 대신 로드합니다.

기본값은 false입니다.

level

필수 String 특성입니다.

응용 프로그램이 실행되는 신뢰 수준을 지정합니다. 각 신뢰 수준은 구성 파일의 trustLevel 요소를 사용하여 개별 XML 정책 파일에 매핑됩니다. 정책 파일에는 각 신뢰 수준에서 허용되는 권한 집합 목록이 포함되어 있습니다. ASP.NET 및 정책 파일에 대한 내용은 ASP.NET 신뢰 수준 및 정책 파일을 참조하십시오.

이 특성은 securityPolicy 요소(ASP.NET 설정 스키마) 요소의 trustLevel 요소에 일치하는 보안 정책 매핑이 정의되어 있는 경우 사용자 정의 값일 수 있고 다음과 같은 값 중 하나일 수 있습니다. 이 값은 제한 수준이 낮은 값부터 순서대로 나열되어 있습니다.

값설명
Full 무제한의 권한을 지정합니다.ASP.NET 응용 프로그램에 운영 체제 보안과 관계된 모든 리소스에 액세스할 수 있는 권한을 부여합니다.특별한 권한을 필요로 하는 모든 작업이 지원됩니다.AspNetHostingPermissionLevel 열거형에서는 이 설정을 Unrestricted라고 합니다.
High 높은 수준의 코드 액세스 보안을 지정합니다. 이 값을 지정하면 응용 프로그램에서 기본적으로 다음 작업을 수행할 수 없습니다.
  • 비관리 코드 호출

  • 서비스 구성 요소 호출

  • 이벤트 로그에 쓰기

  • Microsoft Message Queuing 큐 액세스

  • ODBC, OleDb 또는 Oracle 데이터 소스 액세스

Medium 보통 수준의 코드 액세스 보안을 지정합니다. 이 값을 지정하면 High 수준의 제한 사항이 적용될 뿐만 아니라 ASP.NET 응용 프로그램에서 기본적으로 다음 작업을 수행할 수 없습니다.
  • 응용 프로그램 디렉터리 외부에 있는 파일 액세스

  • 레지스트리 액세스

  • System.Net.HttpWebRequest 클래스 등을 통한 네트워크 또는 웹 서비스 호출

Low 낮은 수준의 코드 액세스 보안을 지정합니다. 이 값을 지정하면 Medium 수준의 제한 사항이 적용될 뿐만 아니라 응용 프로그램에서 기본적으로 다음 작업을 수행할 수 없습니다.
  • 파일 시스템에 쓰기

  • Assert 메서드를 호출합니다.

Minimal 최소 수준의 코드 액세스 보안을 지정합니다. 이 값을 지정하면 응용 프로그램에 실행 권한만 부여됩니다.

기본값은 아무런 제한이 없는 Full입니다.

originUrl

선택적 String 특성입니다.

Medium 신뢰 수준에 구성된 제한된 WebPermission 권한과 함께 사용할 URL을 지정합니다. 이 특성이 있으면 WebPermission에 지정된 특정 URL에만 연결할 수 있는 HttpWebRequest 등의 일부 클래스에서 이 특성을 사용할 수 있습니다. 이 특성을 사용하면 호스트에 의존하는 권한이 제대로 작동될 수 있습니다.

permissionSetName

선택적 문자열 특성입니다.

사용 권한 집합의 이름을 지정합니다.

기본값은 "ASP.Net"입니다.

processRequestInApplicationTrust

선택적 Boolean 특성입니다.

페이지 요청이 ASP.NET 응용 프로그램에 적용된 신뢰 정책 파일에 구성된 사용 권한으로 자동으로 제한되는지 여부를 지정합니다.

신뢰 정책 파일은 securityPolicy 요소의 trustLevel 요소에 지정되어 있습니다. 단일 신뢰 정책은 trust 요소의 level 특성을 사용하여 ASP.NET 응용 프로그램에 적용됩니다.

False로 설정하면 level 특성에 다른 신뢰 수준을 지정하더라도 Full 신뢰 수준에서 ASP.NET 요청을 실행할 수 있습니다. 특별한 이유가 없으면 이 특성을 다시 설정하지 않고 기본값 true로 두는 것이 좋습니다.

이 특성은 .NET Framework 버전 2.0에서 새로 도입되었습니다.

기본값은 True입니다.

자식 요소

없음

부모 요소

요소

설명

configuration

공용 언어 런타임 및 .NET Framework 응용 프로그램에서 사용하는 모든 구성 파일의 필수 루트 요소를 지정합니다.

system.web

구성 파일에서 ASP.NET 구성 설정에 대한 루트 요소를 지정하며, ASP.NET 웹 응용 프로그램을 구성하고 응용 프로그램의 동작 방식을 제어하는 구성 요소를 포함합니다.

설명

trust 요소는 응용 프로그램에 적용되는 CAS(코드 액세스 보안) 수준을 구성합니다. 보안 정책 파일은 securityPolicy 컬렉션 요소에 있는 신뢰 수준 이름에 매핑됩니다. 정책 파일에는 신뢰 수준에서 허용되는 권한 집합 목록이 포함되어 있습니다. trust 요소는 ASP.NET 응용 프로그램에 적용할 신뢰 수준을 지정합니다. ASP.NET 및 정책 파일에 대한 내용은 ASP.NET 신뢰 수준 및 정책 파일을 참조하십시오.

기본적으로 웹 응용 프로그램은 Full 신뢰 수준에서 실행됩니다. 완전 신뢰 응용 프로그램에는 코드 액세스 보안 정책에 의해 무제한의 코드 액세스 권한이 부여됩니다. 이러한 권한에는 기본 제공 시스템 및 사용자 지정 권한이 포함됩니다. 즉, 코드 액세스 보안으로 응용 프로그램에서 보안된 리소스에 액세스하는 것을 막을 수 없습니다. 리소스 액세스 시도의 성공 또는 실패는 운영 체제 수준 보안에 의해 결정됩니다. Full 이외의 신뢰 수준으로 구성된 응용 프로그램을 부분 신뢰 응용 프로그램이라고 합니다. 부분 신뢰 응용 프로그램에는 응용 프로그램의 보안된 리소스에 대한 액세스를 제한하는 권한이 있습니다.

호스팅된 환경에서 보안을 향상시키려면 루트 Web.config 파일에서 location 요소를 사용하여 호스팅된 응용 프로그램에 대한 securityPolicy 및 trust 요소를 묶고 allowOverride="False" 특성을 사용하여 응용 프로그램에서 로컬 Web.config 파일의 설정을 재정의하지 않도록 지정합니다. 호스팅된 여러 응용 프로그램을 서로 다른 신뢰 수준으로 구성하려는 경우 path 특성이 서로 다른 여러 location 요소를 사용할 수도 있습니다. 이 유형의 구성 예제를 보려면 이 항목의 뒤에 나오는 "예제" 부분을 참조하십시오.

참고참고

System.Web의 형식에는 완전 신뢰 호출자가 필요하므로 .NET Framework 버전 1.0을 기반으로 만든 웹 응용 프로그램은 항상 Full 신뢰 수준에서 실행됩니다.새 버전의 .NET Framework으로 업그레이드할 경우에는 기존 응용 프로그램을 테스트하지 않고 신뢰 수준을 변경하지 마십시오.

기본 구성

다음의 기본 trust 요소는 루트 Web.config 파일에 구성되어 있습니다.

<location allowOverride="true">
<system.web>
   <securityPolicy>
      <trustLevel name="Full" policyFile="internal" />
      <trustLevel name="High" policyFile="web_hightrust.config" />
      <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
      <trustLevel name="Low" policyFile="web_lowtrust.config" />
      <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
   </securityPolicy>
   <trust 
      level="Full" 
      originUrl="" 
      processRequestInApplicationTrust="true" 
   />
</system.web>
</location>

예제

다음 코드 예제에서는 루트 Web.config 파일을 사용하여 서버의 모든 ASP.NET 응용 프로그램에 대해 Medium 신뢰 수준 설정을 지정하고 location 요소를 사용하여 설정을 잠그는 방법을 보여 줍니다. 같은 구성 파일의 다른 location 요소는 Default Web Site/Temp 응용 프로그램에 대한 Web.config 파일로 루트 Web.config 파일의 설정을 재정의하는 데 사용됩니다.

<location allowOverride="false">
  <system.web>
    <securityPolicy>
      <trustLevel name="Full" policyFile="internal" />
      <trustLevel name="High" policyFile="web_hightrust.config" />
      <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
      <trustLevel name="Low"  policyFile="web_lowtrust.config" />
      <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
    </securityPolicy>
  </system.web>
</location>

<location allowOverride="false">
  <system.web>
    <trust level="Medium" originUrl="" />
  </system.web>
</location>

<location allowOverride="true" path="Default Web Site/Temp">
  <system.web>
    <trust level="Medium" originUrl="" />
  </system.web>
</location>

요소 정보

구성 섹션 처리기

TrustSection

구성 멤버

AspNetHostingPermission

구성 가능한 위치

Machine.config

루트 수준의 Web.config

응용 프로그램 수준의 Web.config

요구 사항

Microsoft IIS(인터넷 정보 서비스) 버전 5.0, 5.1 또는 6.0

.NET Framework 버전 1.0, 1.1 또는 2.0

Microsoft Visual Studio 2003 또는 Visual Studio 2005

참고 항목

작업

방법: 위치 설정을 사용하여 특정 디렉터리 구성

방법: ASP.NET 구성 설정 잠금

참조

system.web 요소(ASP.NET 설정 스키마)

configuration 요소(일반 설정 스키마)

securityPolicy에 대한 trustLevel 요소(ASP.NET 설정 스키마)

securityPolicy 요소(ASP.NET 설정 스키마)

System.Configuration

System.Net.Configuration

TrustSection

AspNetHostingPermission

개념

ASP.NET 신뢰 수준 및 정책 파일

ASP.NET 신뢰 수준 및 정책 파일

보안 정책 관리

ASP.NET 구성 보안

ASP.NET 구성 시나리오

기타 리소스

ASP.NET 웹 응용 프로그램 보안

일반 구성 설정(ASP.NET)

ASP.NET 구성 설정

ASP.NET 웹 사이트 관리

ASP.NET 구성 파일

ASP.NET 구성 API