次の方法で共有


MachineKeySection.CompatibilityMode プロパティ

定義

.NET Framework Version 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. この値は、.NET Framework 2.0 SP2 で導入されたアップグレードされた暗号化方法を使用する ASP.NET を指定します。 すべてのサーバーに .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 ファイルでの要素の属性の protection 設定方法に関係なく、常に暗号化と署名の forms 両方になります。 ビューステートは、特定のページに対して または RequireViewStateEncryption が設定されている場合EnableViewStateMac、常に暗号化され、署名されます。

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

適用対象