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 设置为“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 文件的属性targetFrameworkhttpRuntime设置为“4.5”,则这是默认值。

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

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

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

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

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

适用于