次の方法で共有


<NetFx40_LegacySecurityPolicy> 要素

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

<構成>
   <実行中>
     <NetFx40_LegacySecurityPolicy>

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

構文

<NetFx40_LegacySecurityPolicy
   enabled="true|false"/>

属性および要素

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

Attributes

特性 Description
enabled 必須の属性。

ランタイムがレガシ CAS ポリシーを使用するかどうかを指定します。

enabled 属性

価値 Description
false ランタイムでは、従来の CAS ポリシーは使用されません。 これが既定値です。
true ランタイムは、従来の CAS ポリシーを使用します。

子要素

なし。

親要素

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

注釈

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

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

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

Important

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

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

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

構成ファイル

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

Example

次の例は、アプリケーションのレガシ CAS ポリシーを有効にする方法を示しています。

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

こちらも参照ください