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 版本中提供的加密方法。 如果任何服务器的版本低于 2.0 SP2 .NET Framework,则对 Web 场中的所有服务器使用此值。 这是默认值,除非应用程序Web.config文件具有 targetFramework 设置为“4.5”的 httpRuntime 元素的属性。

  • 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 设置为“4.5”的 httpRuntime 元素的属性,则此值为默认值。

当此属性设置为 Framework45时,以下限制生效:

  • 如果 DataProtectorType 属性有值,则 ApplicationName 属性必须有值。 类 DataProtector 要求提供非空应用程序名称。

  • Validation 属性必须是实际验证 (算法,例如 MD5、SHA1、HMACSHA256、HMACSHA384、HMACSHA512) 或子类类型的 KeyedHashAlgorithm 自定义算法。 禁止使用 AES 和 3DES 的值。

  • 框架不会生成仅签名的有效负载。 无论元素的属性formsprotectionWeb.config文件中如何设置,表单身份验证票证都将始终加密和签名。 如果 EnableViewStateMac 为给定页面设置或 RequireViewStateEncryption 已设置视图状态,则视图状态始终为加密和签名。

由于 Microsoft 安全公告 MS10-070 中所述的安全更新,默认加密行为与设置Framework20SP1``Framework20SP2相同。 不建议更改默认行为,但如果想要这样做,请参阅如何在 ASP.NET 中配置旧加密模式

适用于