<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 要素、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。完全な管理者アクセス許可を要求します。

ClickOnce アプリケーションは、asInvoker 値でのみインストールされます。 それ以外の値でインストールするとエラーが発生します。

uiAccess

省略できます。 アプリケーションが、保護されたユーザー インターフェイス要素へのアクセスを必要とするかどうかを指定します。 指定できる値は true または false です。既定値は false です。 署名付きのアプリケーションについては、true に設定する必要があります。

解説

ClickOnce アプリケーションで、クライアント コンピューターの既定で与えられる以上のアクセス許可が必要な場合は、より高いレベルの信頼を与えるかどうかを確認するメッセージが、共通言語ランタイム (CLR: Common Language Runtime) の Trust Manager によって表示されます。 ユーザーが信頼を与えない場合、アプリケーションは実行されません。信頼を与えた場合は、ここで要求されたアクセス許可で実行されます。

配置マニフェストに有効な信頼ライセンスがある場合には、defaultAssemblyRequest や assemblyRequest を使用して要求されたアクセス許可が、ユーザーに確認することなく与えられます。

アクセス許可の昇格の詳細については、「ClickOnce アプリケーションのセキュリティ」を参照してください。 ポリシー配置の詳細については、「信頼されたアプリケーションの配置の概要」を参照してください。

次の 3 つのコード例では、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>

2 番目の例は、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>

3 番目の例は、FullTrust セキュリティ ゾーンで使用できる既定のアクセス許可の trustInfo 要素を示しています。

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

参照

参照

ClickOnce アプリケーション マニフェスト

概念

信頼されたアプリケーションの配置の概要