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
的风险。 为了保持向后兼容性,可以使用较旧的加密方法。
Web 场中的所有服务器都应将 CompatibilityMode 属性设置为相同的值。 如果读取 Forms 身份验证票证的服务器具有与创建票证的服务器不同的 CompatibilityMode 设置,则无法识别该票证。
可以为 属性指定 CompatibilityMode 以下值:
Framework20SP1
. 此值指定 ASP.NET 使用早于 2.0 SP2 的 ASP.NET 版本中提供的加密方法。 如果任何服务器的 .NET Framework 版本早于 2.0 SP2,则对 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。
框架不会生成仅签名的有效负载。 无论在 Web.config 文件中如何
protection
设置 元素的forms
属性,Forms 身份验证票证都将始终进行加密和签名。 如果为给定页面设置了 或RequireViewStateEncryption
,EnableViewStateMac
则视图状态将始终经过加密和签名。
由于 Microsoft 安全公告 MS10-070 中描述的安全更新,和 Framework20SP2
设置的默认加密行为是相同的Framework20SP1
。 不建议更改默认行为,但如果要更改,请参阅 如何在 ASP.NET 中配置旧加密模式。