trust 要素 (ASP.NET 設定スキーマ)

更新 : 2007 年 11 月

アプリケーションに適用するコード アクセス セキュリティ (CAS: Code Access Security) のレベルを設定します。この要素は、Full より下の信頼レベルの Web アプリケーションを実行する場合に使用します。

configuration 要素 (全般設定スキーマ)
  system.web 要素 (ASP.NET 設定スキーマ)
    trust 要素 (ASP.NET 設定スキーマ)

<trust 
   level="[Full|High|Medium|Low|Minimal]" 
   originUrl="URL"
   processRequestInApplicationTrust = "[True|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 アプリケーションは既定で次の処理を行うことができません。

  • アプリケーション ディレクトリの外部にあるファイルへのアクセス

  • レジストリへのアクセス

  • ネットワークまたは Web サービスの呼び出し (たとえば System.Net.HttpWebRequest クラスを使用した呼び出し)

Low

低レベルのコード アクセス セキュリティを指定します。つまり、Medium の制限に加えて、アプリケーションは既定で次の処理を行うことができません。

  • ファイル システムへの書き込み

  • Assert メソッドを呼び出します。

Minimal

最小レベルのコード アクセス セキュリティを指定します。つまり、アプリケーションには実行のアクセス許可しかありません。

既定値は Full (制限なし) です。

originUrl

省略可能な String 属性です。

Medium の信頼レベルで構成する制限付きの WebPermission アクセス許可で使用する URL を指定します。存在する場合、これは HttpWebRequest など一部のクラスに使用でき、WebPermission により指定される特定の URL にのみ接続が許可されます。この属性により、ホストの概念に依存するアクセス許可が正常に機能できます。

processRequestInApplicationTrust

省略可能な Boolean 属性です。

信頼度ポリシー ファイル (ASP.NET アプリケーションに適用されます) 内に構成したアクセス許可に、ページ要求を自動的に制限するかどうかを指定します。

信頼度ポリシー ファイルは、securityPolicy 要素内の trustLevel 要素で指定します。各 ASP.NET アプリケーションには、trust 要素の level 属性を使用して 1 つの信頼度ポリシーが適用されます。

False に設定すると、level 属性に異なる信頼レベルを指定した場合でも、Full の信頼レベルで ASP.NET の要求が実行される可能性があります。これを行う特定の理由がある場合以外は、この属性を既定の true からリセットしないでください。

この属性は .NET Framework Version 2.0 で新たに追加されました。

既定値は True です。

子要素

なし。

親要素

要素

説明

configuration

共通言語ランタイムおよび .NET Framework ベースのアプリケーションで使用されるすべての構成ファイルで必要なルート要素です。

system.web

構成ファイルの ASP.NET 構成設定のルート要素を指定します。ASP.NET Web アプリケーションを構成する構成要素やアプリケーションの動作を制御する構成要素が含まれます。

解説

trust 要素は、アプリケーションに適用するコード アクセス セキュリティ (CAS) のレベルを構成します。セキュリティ ポリシー ファイルは、securityPolicy コレクション要素内の信頼レベル名に割り当てられます。このポリシー ファイルは、その信頼レベルで与えられるアクセス許可セットのリストです。trust 要素は、ASP.NET アプリケーションに適用される信頼レベルを指定します。ASP.NET およびポリシー ファイルについては、「ASP.NET 信頼レベルとポリシー ファイル」を参照してください。

既定では、Web アプリケーションは Full の信頼レベルで実行されます。"完全信頼" (信頼レベルが Full) のアプリケーションには、コード アクセス セキュリティ ポリシーによって無制限のコード アクセス許可が与えられます。このアクセス許可には、組み込みのシステム アクセス許可とカスタム アクセス許可が含まれます。これは、セキュリティで保護されたリソースへのアプリケーションのアクセスがコード アクセス セキュリティによって阻止されないことを意味します。リソースへのアクセスが成功するか失敗するかは、オペレーティング システム レベルのセキュリティのみによって決まります。Full 以外の信頼レベルで構成されている場合、アプリケーションは "部分的に信頼されたアプリケーション" と呼ばれます。部分的に信頼されたアプリケーションは制限されたアクセス許可を持っており、アプリケーションのセキュリティで保護されたリソースへのアクセスが制限されます。

ホスト環境のセキュリティを強化するには、ルート Web.config ファイル内で location 要素を使用して、ホストされるアプリケーションの securityPolicy 要素と trust 要素を囲みます。また、よりローカルな Web.config ファイルの設定をアプリケーションがオーバーライドしないように allowOverride="False" 属性を指定します。ホストされるアプリケーションごとに異なる信頼レベルを構成する場合、オプションとして複数の location 要素を path 属性ごとに利用することもできます。この種類の構成の例については、このトピックで後述する「使用例」を参照してください。

メモ :

.NET Framework Version 1.0 上に構築された Web アプリケーションは、常に Full の信頼レベルで実行されます。それは、System.Web に含まれる型によって完全信頼の呼び出し元が要求されるからです。新しいバージョンの .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 要素を指定する方法を次のコード例に示します。同じ構成ファイルに含まれるもう 1 つの 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 Internet Information Services (IIS) バージョン 5.0、5.1、または 6.0

.NET Framework Version 1.0、1.1、または 2.0

Microsoft Visual Studio 2003 または Visual Studio 2005

参照

処理手順

方法 : Location の設定を使用して特定のディレクトリを構成する

方法 : ASP.NET 構成設定をロックする

概念

ASP.NET 信頼レベルとポリシー ファイル

ASP.NET 信頼レベルとポリシー ファイル

セキュリティ ポリシーの管理

ASP.NET 構成の保護

ASP.NET の構成のシナリオ

参照

system.web 要素 (ASP.NET 設定スキーマ)

configuration 要素 (全般設定スキーマ)

securityPolicy の trustLevel 要素 (ASP.NET 設定スキーマ)

securityPolicy 要素 (ASP.NET 設定スキーマ)

System.Configuration

System.Net.Configuration

TrustSection

AspNetHostingPermission

その他の技術情報

ASP.NET Web アプリケーションのセキュリティ

全般構成設定 (ASP.NET)

ASP.NET 構成設定

ASP.NET Web サイトの管理

ASP.NET 構成ファイル

ASP.NET 構成 API