MachineKeySection.CompatibilityMode 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定一個值,指定是否使用在 .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 該數值的風險。 舊有的加密方法是為了維持向下相容性而存在。
網路農場中的所有伺服器都應該設定 CompatibilityMode 該屬性為相同的值。 如果讀取表單驗證工單的伺服器設定與建立工單的伺服器不同 CompatibilityMode ,該工單將無法被辨識。
以下數值可指定於該 CompatibilityMode 性質:
Framework20SP1。 此值表示 ASP.NET 使用了 2.0 SP2 之前版本 ASP.NET 可用的加密方法。 如果網路農場中所有伺服器的 .NET Framework 版本早於 2.0 SP2,則使用此值。 除非應用程式 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」,則預設值為 4.5。
當此屬性設為 Framework45時,會受到以下限制:
如果財產 DataProtectorType 有價值,那麼該 ApplicationName 財產也必須有價值。 該 DataProtector 類別要求必須提供非空的應用程式名稱。
屬性 Validation 必須是實際的驗證演算法(例如 MD5、SHA1、HMACSHA256、HMACSHA384、HMACSHA512)或是自訂演算法,將該 KeyedHashAlgorithm 類型子類別化。 AES 和 3DES 的數值是被禁止的。
該框架不會產生僅簽署的有效載荷。 表單認證工單無論元素屬性在 Web.config 檔案中如何
protectionforms設定,都會同時加密且簽署。 如果某頁設定了EnableViewStateMac或RequireViewStateEncryption之一,檢視狀態將永遠同時加密且簽名。
根據 Microsoft 安全公告 MS10-070 中所述的安全更新,預設的加密行為在 和 Framework20SP2 設定中保持不變Framework20SP1。 不建議更改預設行為,但如果你想這麼做,可以參考 《如何在 ASP.NET 中設定舊有加密模式》。