Validation of viewstate MAC failed (machineKey)

<< Click to Display Table of Contents >>

Navigation:  ASP.NET > Gerenciando Erros >

Validation of viewstate MAC failed (machineKey)

Previous pageReturn to chapter overviewNext page

Erro

 

erro_mac_machinekey

 

Motivo

 

Este erro ocorre geralmente quando a página fica aberta e depois de um longo período de tempo clicamos em algo que aciona o submit do form.

Como o ViewState contém dados criptografados e geralmente no web.config a machineKey está com o validationKey="AutoGenerate".

E de tempos em tempos o .Net muda estas chaves, os dados criptografados do ViewState não podem mais ser descriptografados e gera este erro.

Não sei diser de quanto em quanto tempo essa chave muda, em alguns casos, a cada dia, em outros, em poucos minutos..

 

Solução

 

Para resolver o erro "Validation of viewstate MAC failed", é basicamente simples.

Acesse este site http://aspnetresources.com/tools/machineKey

 

Esta ferramenta permite a você gerar chaves aleatórias para validação do ViewState, após gerar estas chaves, copie e adicione (ou altere, caso já exista) no web.config.

 

Exemplo:

 

<?xml version="1.0"?>
<configuration>
  <system.web>
    <machineKey validationKey="668E7053A67FB31446DBEC83B3F57AD0252F9671BD313D41FBD571FD0B6C599252FDCBE8E3358CA7FC79F2AF4AC4E2DF4C4E2A78D77DB582F3D0739E2AF1C443"
                decryptionKey="6F376C11CC7A869CF357C3A3A8DF33CBCA3DB23818C7E816C0E62C36EAC56B1B" validation="SHA1" decryption="AES"/>
</configuration>

 

Assim a machineKey ficará fixa e este erro não acontecerá mais.

 

Fonte

 

http://cbsa.com.br/post/validation-of-viewstate-mac-failed-machinekey.aspx