Проверка машинного ключа от MVC4 до MV5 - PullRequest
0 голосов
/ 24 сентября 2019

После переноса моего проекта mvc4 в mvc5 с помощью Microsoft после этого

https://docs.microsoft.com/en-us/aspnet/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2

Мне нужно следующее сообщение об ошибке:

System.Configuration.ConfigurationErrorsException: 'При использовании или MachineKey.Protect и MachineKey.Снять защиту с API, атрибут 'validation' должен иметь одно из следующих значений: SHA1, HMACSHA256, HMACSHA384, HMACSHA512 или alg: [KeyedHashAlgorithm].

Это конфигурация ключа компьютера: validation = "AES"расшифровка =" AES ".Мой проект использует фреймворк 4.7.2.Когда я изменяю проверку на SHA1 и расшифровываю на AUTO, это работает.Я должен заставить его работать с мыслью AES, и я не уверен, почему это работает с mvc 4, а не 5. Я также попытался добавить framework 4.7 в конфигурацию httpRuntime в web.config и получить ту же ошибку.Любая идея?Спасибо.

Новый статус 27-09-2019

Я добавил строку непосредственно перед возникновением исключения (перед использованием @ Html.AntiForgeryToken ()) для проверкичто конфигурация ключа компьютера из веб-конфигурации имеет ожидаемое значение при отладке.

MachineKeySection section = (MachineKeySection) 
  ConfigurationManager.GetSection ("system.web/machineKey");

Режим совместимости установлен на «Framework20SP2», но я все еще получаю сообщение об ошибке, в котором говорится, что compatibilityMode - Framework45.

Web.Config

<machineKey compatibilityMode="Framework20SP2" validationKey="..." decryptionKey="..." validation="AES" decryption="AES" />

1 Ответ

0 голосов
/ 24 сентября 2019

Согласно этой статье - значение проверки должно быть SHA1 (которое мы интерпретируем как HMACSHA1), HMACSHA256, HMACSHA384, HMACSHA512 или ссылка на тип, производный от KeyedHashAlgorithm.Значения AES, 3DES и MD5 больше не разрешены, как это было в ASP.NET 4.

Может быть, есть какое-то решение с режимом совместимости machieKey ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...