Share via


MachineKeySection.CompatibilityMode Propriedade

Definição

Obtém ou define um valor que especifica se serão usados os métodos de criptografia atualizados para o estado de exibição que foram introduzidos após a liberação do .NET Framework versão 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

Valor da propriedade

MachineKeyCompatibilityMode

Um valor que indica se serão usados os métodos de criptografia que foram introduzidos após a liberação do .NET Framework 2.0 SP1.

Atributos

Comentários

Os métodos de criptografia atualizados em versões posteriores do .NET Framework reduzem o risco de que um invasor possa reverter o DecryptionKey valor com êxito. Os métodos de criptografia mais antigos estão disponíveis para manter a compatibilidade com versões anteriores.

Todos os servidores em um farm da Web devem ter a CompatibilityMode propriedade definida como o mesmo valor. Se o servidor que lê um tíquete de autenticação de formulários tiver uma configuração diferente CompatibilityMode do servidor que criou o tíquete, o tíquete não será reconhecido.

Os seguintes valores podem ser especificados para a CompatibilityMode propriedade:

  • Framework20SP1. Esse valor especifica que ASP.NET usa métodos de criptografia que estavam disponíveis em versões de ASP.NET anteriores ao 2.0 SP2. Use esse valor para todos os servidores em um farm da Web se algum servidor tiver uma versão do .NET Framework anterior à 2.0 SP2. Esse é o valor padrão, a menos que o aplicativo Web.config arquivo tenha o targetFramework atributo do httpRuntime elemento definido como "4.5".

  • Framework20SP2. Esse valor especifica que ASP.NET usa métodos de criptografia atualizados que foram introduzidos no .NET Framework 2.0 SP2. Use esse valor para todos os servidores em um farm da Web se todos os servidores tiverem o .NET Framework 2.0 SP2 ou posterior, mas pelo menos um não tiver o .NET Framework 4.5.

  • Framework45. Aprimoramentos criptográficos para ASP.NET 4.5 estão em vigor. Esse é o valor padrão se o aplicativo Web.config arquivo tiver o targetFramework atributo do httpRuntime elemento definido como "4.5".

Quando essa propriedade é definida como Framework45, as seguintes restrições estão em vigor:

  • Se a propriedade DataProtectorType tiver um valor, a propriedade ApplicationName também deverá ter um valor. A DataProtector classe determina que um nome de aplicativo não vazio seja fornecido.

  • O Validation atributo deve ser um algoritmo de validação real (por exemplo, MD5, SHA1, HMACSHA256, HMACSHA384, HMACSHA512) ou um algoritmo personalizado que subclasse o KeyedHashAlgorithm tipo. Os valores AES e 3DES são proibidos.

  • A estrutura não produzirá cargas somente assinadas. Os tíquetes de autenticação de formulários sempre serão criptografados e assinados, independentemente de como o protection atributo do forms elemento é definido no arquivo Web.config. O estado de exibição sempre será criptografado e assinado se um ou RequireViewStateEncryption outro EnableViewStateMac estiver definido para uma determinada página.

Como resultado da atualização de segurança descrita no boletim de segurança da Microsoft MS10-070, o comportamento de criptografia padrão é o mesmo para as configurações e Framework20SP2 as Framework20SP1 configurações. Não é recomendável alterar o comportamento padrão, mas se você quiser fazer isso, consulte Como configurar o modo de criptografia herdado no ASP.NET.

Aplica-se a