MachineKeySection.CompatibilityMode プロパティ

定義

.NET Framework バージョン 2.0 Service Pack 1 リリース後に導入されたビュー ステートのアップグレードされた暗号化方法を使用するかどうかを指定する値を取得または設定します。

public:
 property System::Web::Configuration::MachineKeyCompatibilityMode CompatibilityMode { System::Web::Configuration::MachineKeyCompatibilityMode get(); void set(System::Web::Configuration::MachineKeyCompatibilityMode value); };
[System.Configuration.ConfigurationProperty("compatibilityMode", DefaultValue=System.Web.Configuration.MachineKeyCompatibilityMode.Framework20SP1)]
public System.Web.Configuration.MachineKeyCompatibilityMode CompatibilityMode { get; set; }
[<System.Configuration.ConfigurationProperty("compatibilityMode", DefaultValue=System.Web.Configuration.MachineKeyCompatibilityMode.Framework20SP1)>]
member this.CompatibilityMode : System.Web.Configuration.MachineKeyCompatibilityMode with get, set
Public Property CompatibilityMode As MachineKeyCompatibilityMode

プロパティ値

.NET Framework 2.0 SP1 リリース後に導入された暗号化方法を使用するかどうかを示す値。

属性

注釈

.NET Framework の新しいバージョンでアップグレードされた暗号化方法により、攻撃者が DecryptionKey 値を正常にリバース エンジニアリングできるリスクが軽減されます。 旧バージョンの暗号化方法は、下位互換性を維持するために使用できます。

Web ファーム内のすべてのサーバーで、 CompatibilityMode プロパティが同じ値に設定されている必要があります。 フォーム認証チケットを読み取るサーバーに、チケットを作成したサーバーとは異なる CompatibilityMode 設定がある場合、チケットは認識されません。

CompatibilityMode プロパティには、次の値を指定できます。

  • Framework20SP1。 この値は、ASP.NET が 2.0 SP2 より前のバージョンの ASP.NET で使用できる暗号化方法を使用することを指定します。 2.0 SP2 より前のバージョンの .NET Framework を持つサーバーがある場合は、Web ファーム内のすべてのサーバーにこの値を使用します。 これは、アプリケーション Web.config ファイルに httpRuntime 要素のtargetFramework属性が "4.5" に設定されていない限り、既定値です。

  • Framework20SP2。 この値は、ASP.NET が .NET Framework 2.0 SP2 で導入されたアップグレードされた暗号化方法を使用することを指定します。 すべてのサーバーに .NET Framework 2.0 SP2 以降があり、少なくとも 1 つが .NET Framework 4.5 を持たない場合は、Web ファーム内のすべてのサーバーにこの値を使用します。

  • Framework45。 ASP.NET 4.5 の暗号化の機能強化が有効です。 これは、アプリケーション Web.config ファイルの httpRuntime 要素のtargetFramework属性が "4.5" に設定されている場合の既定値です。

このプロパティを Framework45 に設定すると、次の制限が有効になります。

  • DataProtectorType プロパティに値がある場合は、ApplicationName プロパティにも値が必要です。 DataProtector クラスでは、空でないアプリケーション名を指定する必要があります。

  • Validation属性は、実際の検証アルゴリズム (MD5、SHA1、HMACSHA256、HMACSHA384、HMACSHA512など) またはKeyedHashAlgorithm型をサブクラス化するカスタム アルゴリズムである必要があります。 値 AES と 3DES は禁止されています。

  • フレームワークでは、署名付きのみのペイロードは生成されません。 フォーム認証チケットは、Web.config ファイルでforms要素のprotection属性がどのように設定されているかに関係なく、常に暗号化と署名の両方になります。 特定のページに対して EnableViewStateMac または RequireViewStateEncryption が設定されている場合、ビューステートは常に暗号化され、署名されます。

Microsoft セキュリティ情報 MS10-070 で説明されているセキュリティ更新プログラムの結果、既定の暗号化動作は、Framework20SP1Framework20SP2の設定で同じです。 既定の動作を変更することはお勧めしませんが、これを行う場合は、「 ASP.NET でレガシ暗号化モードを構成する方法」を参照してください。

適用対象