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

屬性值

MachineKeyCompatibilityMode

值,表示是否使用在 .NET Framework 2.0 SP1 版後所引入的加密方法。

屬性

備註

更新版本中升級的加密方法.NET Framework可降低攻擊者成功反向工程 DecryptionKey 該值的風險。 舊版加密方法可供使用,以維持回溯相容性。

Web 服務器陣列中的所有伺服器都應該將 CompatibilityMode 屬性設定為相同的值。 如果讀取表單驗證票證的伺服器設定與建立票證的伺服器不同 CompatibilityMode ,則無法辨識票證。

可以為 屬性指定 CompatibilityMode 下列值:

  • Framework20SP1. 這個值會指定 ASP.NET 使用 2.0 SP2 之前的 ASP.NET 版本中可用的加密方法。 如果任何伺服器版本.NET Framework早于 2.0 SP2 的 .NET Framework,請使用此值給 Web 服務器陣列中的所有伺服器。 除非應用程式Web.config檔案的 targetFramework 屬性 httpRuntime 設定為 「4.5」,否則這是預設值。

  • Framework20SP2. 這個值會指定 ASP.NET 使用 .NET Framework 2.0 SP2 中引進的升級加密方法。 如果所有伺服器都有 .NET Framework 2.0 SP2 或更新版本,但至少有一部伺服器沒有 .NET Framework 4.5,請使用此值。

  • Framework45. ASP.NET 4.5 的密碼編譯增強功能已生效。 如果應用程式Web.config檔案的 targetFramework 屬性 httpRuntime 設定為 「4.5」,則這是預設值。

當此屬性設定為 Framework45 時,下列限制會生效:

  • 如果 DataProtectorType 屬性有值,ApplicationName 屬性也必須有值。 類別 DataProtector 會要求提供非空白的應用程式名稱。

  • 屬性 Validation 必須是實際的驗證演算法 (,例如 MD5、SHA1、HMACSHA256、HMACSHA384、HMACSHA512) 或子類別 KeyedHashAlgorithm 化類型的自訂演算法。 AES 和 3DES 的值禁止。

  • 架構不會產生僅限簽署的承載。 表單驗證票證一律會同時經過加密和簽署,不論元素的 forms 屬性在Web.config檔案中設定的方式 protection 為何。 如果 EnableViewStateMac 為指定的頁面設定 或 RequireViewStateEncryption ,則檢視狀態一律會同時加密和簽署。

由於Microsoft 安全性佈告欄 MS10-070中所述的安全性更新,和 Framework20SP2 設定的預設加密行為相同 Framework20SP1 。 不建議變更預設行為,但如果您想要這麼做,請參閱如何在 ASP.NET 中設定舊版加密模式

適用於