共用方式為


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 檔案的 targetFramework 屬性 httpRuntime 設定為 「4.5」,否則這是預設值。

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

  • 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 中設定舊版加密模式

適用於