MachineKeySection.CompatibilityMode Propriedade

Definição

Recebe ou define um valor que especifica se são utilizados métodos de encriptação atualizados para o estado da visualização, introduzidos após o lançamento do Service Pack 1 do .NET Framework versão 2.0.

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 de Propriedade

Um valor que indica se são utilizados métodos de encriptação introduzidos após o lançamento do .NET Framework 2.0 SP1.

Atributos

Observações

Os métodos de encriptação atualizados nas versões posteriores do .NET Framework reduzem o risco de um atacante conseguir fazer engenharia reversa com sucesso do valor DecryptionKey. Os métodos de encriptação mais antigos estão disponíveis para manter a compatibilidade retroativa.

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

Os seguintes valores podem ser especificados para a CompatibilityMode propriedade:

  • Framework20SP1. Este valor especifica que o ASP.NET utiliza métodos de encriptação que estavam disponíveis em versões do ASP.NET anteriores à 2.0 SP2. Use este valor para todos os servidores numa web farm se algum servidor tiver uma versão do .NET Framework anterior à 2.0 SP2. Este é o valor predefinido, a menos que o ficheiro Web.config da aplicação tenha o targetFramework atributo do httpRuntime elemento definido como "4.5".

  • Framework20SP2. Este valor especifica que o ASP.NET utiliza métodos de encriptação atualizados que foram introduzidos no .NET Framework 2.0 SP2. Use este valor para todos os servidores numa web farm 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. Estão em vigor melhorias criptográficas para o ASP.NET 4.5. Este é o valor padrão se o ficheiro de Web.config aplicação tiver o targetFramework atributo do httpRuntime elemento definido como "4.5".

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

  • Se a DataProtectorType propriedade tiver valor, também ApplicationName deve ter valor. A DataProtector disciplina exige que seja fornecido um nome de candidatura não vazio.

  • 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.

  • O framework não produzirá payloads apenas assinados. Os tickets de autenticação de formulários serão sempre encriptados e assinados, independentemente de como o protection atributo do forms elemento está definido no ficheiro Web.config. O estado de visualização será sempre simultaneamente encriptado e assinado se qualquer um EnableViewStateMac dos ou RequireViewStateEncryption estiver definido para uma determinada página.

Como resultado da atualização de segurança descrita no boletim de segurança Microsoft MS10-070, o comportamento padrão de encriptação é o mesmo para as definições Framework20SP1 e Framework20SP2. Não é recomendado alterar o comportamento padrão, mas se quiser fazer isso, veja Como configurar o modo de encriptação legado em ASP.NET.

Aplica-se a