次の方法で共有


<NetFx40_LegacySecurityPolicy> 要素

ランタイムがレガシ コード アクセス セキュリティ (CAS) ポリシーを使用するかどうかを指定します。

configuration
  runtime
    <NetFx40_LegacySecurityPolicy>

Note

コード アクセス セキュリティ (CAS) は、.NET Framework と .NET のすべてのバージョンで非推奨になりました。 最近のバージョンの .NET では、CAS 関連の API が使われている場合、CAS の注釈は使われず、エラーが発生します。 開発者は、代わりの手段を見つけてセキュリティ タスクを実現する必要があります。

構文

<NetFx40_LegacySecurityPolicy
   enabled="true|false"/>

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性 説明
enabled 必須の属性です。

ランタイムで従来の CAS ポリシーを使用するかどうかを指定します。

enabled 属性

[値] 説明
false ランタイムでは、従来の CAS ポリシーは使用されません。 既定値です。
true ランタイムでは、従来の CAS ポリシーが使用されます。

子要素

なし。

親要素

要素 説明
configuration 共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルのルート要素です。
runtime ランタイム初期化オプションに関する情報を含んでいます。

解説

.NET Framework Version 3.5 以前のバージョンでは、CAS ポリシーは常に有効です。 .NET Framework 4 では、CAS ポリシーを有効にする必要があります。

CAS ポリシーはバージョン固有です。 以前のバージョンの .NET Framework に存在するカスタム CAS ポリシーは、.NET Framework 4 で再指定する必要があります。

<NetFx40_LegacySecurityPolicy> 要素を .NET Framework 4 アセンブリに適用しても、透過的セキュリティ コードには影響しません。透過性規則が引き続き適用されます。

重要

<NetFx40_LegacySecurityPolicy> 要素を適用すると、グローバル アセンブリ キャッシュにインストールされていないネイティブ イメージ ジェネレーター (Ngen.exe) によって作成されたネイティブ イメージ アセンブリのパフォーマンスが大幅に低下する可能性があります。 パフォーマンスの低下は、属性が適用されたときにランタイムでアセンブリをネイティブ イメージとして読み込むことができず、結果的に Just-In-Time アセンブリとして読み込まれることが原因で発生します。

Note

Visual Studio プロジェクトのプロジェクト設定で、.NET Framework 4 より前のターゲット .NET Framework バージョンを指定した場合、そのバージョンに指定したカスタム CAS ポリシーも含めて、CAS ポリシーが有効になります。 ただし、新しい .NET Framework 4 の型とメンバーを使用することはできません。 アプリケーション構成ファイルのスタートアップ設定スキーマの <supportedRuntime> 要素を使用して、以前のバージョンの .NET Framework を指定することもできます。

Note

構成ファイルの構文では、大文字と小文字が区別されます。 「構文」セクションと「例」セクションに記載されている構文を使用する必要があります。

構成ファイル

この要素は、アプリケーション構成ファイルでのみ使用できます。

アプリケーションで従来の CAS ポリシーを有効にする方法を次の例に示します。

<configuration>
   <runtime>
      <NetFx40_LegacySecurityPolicy enabled="true"/>
   </runtime>
</configuration>

関連項目