<trustInfo> Element (ClickOnce Application)

클라이언트 컴퓨터에서 응용 프로그램을 실행하는 데 필요한 최소한의 보안 권한을 설명합니다.

<trustInfo>
   <security>
      <applicationRequestMinimum>
         <PermissionSet
            ID
            Unrestricted>
            <IPermission
               class
               version
               Unrestricted
            />
         </PermissionSet>
         <defaultAssemblyRequest
            permissionSetReference
         />
         <assemblyRequest
            name
            permissionSetReference
         />
      </applicationRequestMinimum>
      <requestedPrivileges>
         <requestedExecutionLevel
            level
            uiAccess
         />
      </requestedPrivileges>
   </security>
</trustInfo>

요소 및 특성

trustInfo 요소는 필수적 요소이며 asm.v2 네임스페이스에 있습니다. 특성이 없고 다음과 같은 요소가 포함되어 있습니다.

security

필수적 요소로서, 이 요소는 trustInfo 요소의 자식입니다. 이 요소에는 applicationRequestMinimum 요소가 포함되고 특성이 없습니다.

applicationRequestMinimum

필수적 요소로서, 이 요소는 security 요소의 자식이고 PermissionSet, assemblyRequest 및 defaultAssemblyRequest요소를 포함합니다. 이 요소에는 특성이 없습니다.

PermissionSet

필수적 요소로서, 이 요소는 applicationRequestMinimum 요소의 자식이고 IPermission 요소를 포함합니다. 이 요소에는 다음과 같은 특성이 있습니다.

특성

설명

ID

필수적 요소로서, 권한 집합을 식별합니다. 이 특성은 임의의 값이 될 수 있습니다. 이 ID는 defaultAssemblyRequest 및 assemblyRequest 특성에서 참조합니다.

version

필수적 요소로서, 권한의 버전을 식별합니다. 일반적으로 이 값은 1입니다.

IPermission

선택적 요소로서, 이 요소는 PermissionSet 요소의 자식입니다. IPermission 요소는 .NET Framework에서 권한 클래스를 완전히 식별합니다. IPermission 요소에는 다음과 같은 특성이 있지만 권한 클래스의 속성에 해당하는 추가 특성도 설정할 수 있습니다. 특정 권한에 대한 구문을 보려면 Security.config 파일에 나열된 예제를 참조하십시오.

특성

설명

class

필수적 요소로서, 강력한 이름으로 권한 클래스를 식별합니다. 예를 들어, 다음 코드에서는 FileDialogPermission 형식을 식별합니다.

System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

version

필수적 요소로서, 권한의 버전을 식별합니다. 일반적으로 이 값은 1입니다.

Unrestricted

필수적 요소로서, 응용 프로그램에서 이 권한을 무제한으로 부여해야 하는지 여부를 식별합니다. true이면 권한을 부여하는 데 조건이 없습니다. false이거나 이 특성을 정의하지 않으면 IPermission 태그에 정의된 권한별 특성에 따라 권한이 제한적으로 부여됩니다. 다음 권한을 예로 들 수 있습니다.

<IPermission
  class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
  version="1" 
  Read="USERNAME" />
<IPermission
  class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
  version="1" 
  Unrestricted="true" />

이 예제에서 EnvironmentPermission에 대한 선언은 환경 변수 USERNAME만 읽도록 응용 프로그램을 제한하는 반면, FileDialogPermission에 대한 선언은 응용 프로그램에서 모든 FileDialog 클래스를 무제한으로 사용하도록 허용합니다.

defaultAssemblyRequest   

선택적 요소로서, 모든 어셈블리에 부여되는 권한 집합을 식별합니다. 이 요소는 applicationRequestMinimum 요소의 자식이고 다음과 같은 특성이 있습니다.

특성

설명

permissionSetReference

필수적 요소로서, 기본 권한인 권한 집합의 ID를 식별합니다. 권한 집합은 PermissionSet 요소에 선언됩니다.

assemblyRequest   

선택적 요소로서, 특정 어셈블리에 대한 권한을 식별합니다. 이 요소는 applicationRequestMinimum 요소의 자식이고 다음과 같은 특성이 있습니다.

특성

설명

Name

필수적 요소로서, 어셈블리 이름을 식별합니다.

permissionSetReference

필수적 요소로서, 이 어셈블리에 필요한 권한 집합의 ID를 식별합니다. 권한 집합은 PermissionSet 요소에 선언됩니다.

requestedPrivileges

선택적 요소로서, 이 요소는 security 요소의 자식이고 requestedExecutionLevel 요소를 포함합니다. 이 요소에는 특성이 없습니다.

requestedExecutionLevel

선택적 요소로서, 응용 프로그램 요청이 실행되는 보안 수준을 식별합니다. 이 요소에는 자식이 없고 다음과 같은 특성이 있습니다.

특성

설명

Level

필수적 요소로서, 응용 프로그램이 요청하는 중인 보안 수준을 나타냅니다. 가능한 값은 다음과 같습니다.

추가 권한을 요청하지 않는 asInvoker. 이 수준에는 추가 신뢰 프롬프트가 필요하지 않습니다.

부모 프로세스에 사용할 수 있는 최고 권한을 요청하는 highestAvailable

전체 관리자 권한을 요청하는 requireAdministrator

asInvoker 값만 ClickOnce 응용 프로그램과 함께 설치됩니다. 다른 값과 함께 설치하면 실패합니다.

uiAccess

선택적 요소로서, 보호된 사용자 인터페이스 요소에 대한 액세스가 응용 프로그램에 필요한지 여부를 나타냅니다. 값은 true 또는 false이고 기본값은 false입니다. 서명된 응용 프로그램만 true 값을 가져야 합니다.

설명

클라이언트 컴퓨터가 기본적으로 부여하는 것보다 많은 권한을 ClickOnce 응용 프로그램에서 요청하는 경우 공용 언어 런타임의 트러스트 관리자는 이러한 향상된 수준의 신뢰를 응용 프로그램에 부여할지 여부를 사용자에게 묻습니다. 사용자가 이를 거부하면 응용 프로그램이 실행되지 않고, 그렇지 않으면 요청한 권한으로 실행됩니다.

배포 매니페스트에 유효한 트러스트 라이선스가 있는 경우 defaultAssemblyRequest 및 assemblyRequest를 사용하여 요청한 모든 권한이 사용자 확인 없이 부여됩니다.

권한 높이기에 대한 자세한 내용은 ClickOnce 응용 프로그램 보안을 참조하십시오. 정책 배포에 대한 자세한 내용은 신뢰할 수 있는 응용 프로그램 배포 개요를 참조하십시오.

예제

다음 세 가지 코드 예제에서는 ClickOnce 배포의 응용 프로그램 매니페스트에 사용하기 위해 명명된 기본 보안 영역인 Internet, LocalIntranet 및 FullTrust에 대한 trustInfo 요소를 보여 줍니다.

첫 번째 예제에서는 Internet 보안 영역에 사용할 수 있는 기본 권한에 대한 trustInfo 요소를 보여 줍니다.

<trustInfo>
    <security>
      <applicationRequestMinimum>
        <PermissionSet ID="Internet">
          <IPermission
            class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1" 
            Access="Open" />
          <IPermission
           class="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
            version="1"
            Allowed="DomainIsolationByUser"
            UserQuota="10240" />
          <IPermission
            class="System.Security.Permissions.SecurityPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1" 
            Flags="Execution" />
          <IPermission 
            class="System.Security.Permissions.UIPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
            version="1" 
            Window="SafeTopLevelWindows"
            Clipboard="OwnClipboard" />
          <IPermission
            class="System.Drawing.Printing.PrintingPermission, System.Drawing, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
            version="1" 
            Level="SafePrinting" />
        </PermissionSet>
        <defaultAssemblyRequest permissionSetReference="Internet" />
      </applicationRequestMinimum>
    </security>
  </trustInfo>

두 번째 예제에서는 LocalIntranet 보안 영역에 사용할 수 있는 기본 권한에 대한 trustInfo 요소를 보여 줍니다.

<trustInfo>
    <security>
      <applicationRequestMinimum>
        <PermissionSet ID="LocalIntranet">
          <IPermission
            class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
            version="1" 
            Read="USERNAME" />
          <IPermission
            class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
            version="1" 
            Unrestricted="true" />
          <IPermission
            class="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
            version="1" 
            Allowed="AssemblyIsolationByUser"
            UserQuota="9223372036854775807"
            Expiry="9223372036854775807"
            Permanent="True" />
          <IPermission
            class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
            version="1" 
            Flags="ReflectionEmit" />
          <IPermission
            class="System.Security.Permissions.SecurityPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
            version="1" 
            Flags="Assertion, Execution" />
          <IPermission 
            class="System.Security.Permissions.UIPermission, mscorlib, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1" 
            Unrestricted="true" />
          <IPermission
            class="System.Net.DnsPermission, System, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1" 
            Unrestricted="true" />
          <IPermission
            class="System.Drawing.Printing.PrintingPermission, System.Drawing, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
            version="1"
            Level="DefaultPrinting" />
          <IPermission
            class="System.Diagnostics.EventLogPermission, System, Version=1.2.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            version="1" />
        </PermissionSet>
        <defaultAssemblyRequest permissionSetReference="LocalIntranet" />
      </applicationRequestMinimum>
    </security>
</trustInfo>

세 번째 예제에서는 FullTrust 보안 영역에 사용할 수 있는 기본 권한에 대한 trustInfo 요소를 보여 줍니다.

<trustInfo>
  <security>
    <applicationRequestMinimum>
      <PermissionSet ID="FullTrust" Unrestricted="true" />
      <defaultAssemblyRequest permissionSetReference="FullTrust" />
    </applicationRequestMinimum>
  </security>
</trustInfo>

참고 항목

참조

ClickOnce 응용 프로그램 매니페스트

개념

신뢰할 수 있는 응용 프로그램 배포 개요