<trustInfo> 요소(ClickOnce 애플리케이션)

애플리케이션을 클라이언트 컴퓨터에서 실행하는 데 필요한 최소 보안 권한을 설명합니다.

구문


      <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, assemblyRequestdefaultAssemblyRequest요소를 포함합니다. 이 요소에는 특성이 없습니다.

PermissionSet

필수입니다. 이 요소는 applicationRequestMinimum 요소의 자식이며 IPermission 요소를 포함합니다. 이 요소에는 다음 특성이 있습니다.

  • ID

    필수입니다. 권한 집합을 알려 줍니다. 이 특성은 아무 값이나 될 수 있습니다. ID는 defaultAssemblyRequestassemblyRequest 특성에서 참조됩니다.

  • 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, 전체 관리자 권한을 요청합니다.

    ClickOnce 애플리케이션은 asInvoker 값으로만 설치됩니다. 다른 모든 값을 사용하는 설치는 실패합니다.

  • uiAccess

    선택 사항. 애플리케이션에서 보호된 사용자 인터페이스 요소에 대한 액세스를 필요로 하는지 여부를 나타냅니다. 값은 true 또는 false이며, 기본값은 false입니다. 서명된 애플리케이션만 true 값을 가집니다.

설명

ClickOnce 애플리케이션에서 클라이언트 컴퓨터에서 기본적으로 부여하는 권한보다 많은 권한을 요청하는 경우, 공용 언어 런타임의 트러스트 관리자는 애플리케이션에 이 관리자 권한 수준의 트러스트를 부여할지를 사용자에게 묻습니다. 관리자 권한 수준의 트러스트를 부여하지 않는 경우 애플리케이션은 실행되지 않으며, 부여하는 경우 요청된 권한으로 실행됩니다.

defaultAssemblyRequestassemblyRequest 을(를) 사용하여 요청된 모든 권한은 배포 매니페스트에 유효한 트러스트 라이선스가 있는 경우 사용자 프롬프트 없이 부여됩니다.

권한 상승에 대한 자세한 내용은 ClickOnce 애플리케이션 보안을 참조하세요. 정책 배포에 대한 자세한 내용은 Trusted Application Deployment Overview의 내용을 를 참조하세요.

예제

다음 세 가지 코드 예제는 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>

참고 항목