Зашифрованное содержимое ASP.NET не расшифровывается или расшифровывается с ошибками, если веб-сайт использует сохраненные куки-файлы для проверки подлинности с помощью форм или развернут на веб-ферме

Переводы статьи Переводы статьи
Код статьи: 2431728 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Проблема

После установки пакета обновления для системы безопасности MS10-070 на серверы, обслуживающие веб-сайты Microsoft ASP.NET, развернутые на веб-ферме, некоторые серверы и приложения веб-фермы могут демонстрировать перечисленные ниже симптомы.
  • Сбой при расшифровке данных.
  • Ошибки исключения в обработчиках WebResource или ScriptResource.
  • Сбой проверки подлинности при использовании проверки подлинности с помощью форм.
  • Исключения "Неверное состояние вида".
  • Исключения "Не удалось проверить данные" при попытке расшифровки данных (например, куки-файла проверки подлинности с помощью форм).
Сбой может проявляться в виде исключения в приложении при доступе к приложению ASP.NET, а в журнале приложений могут появляться записи, аналогичные приведенным ниже.


Сообщение 1.

System.Web.HttpException : Не удалось проверить данные. в System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo, Boolean signData)

Сообщение 2.

Тип события: предупреждение
Источник события: ASP.NET 2.0.50727.0
Категория события: веб-событие
Код события: 1309
Дата: Дата
Время: Время
Пользователь: Н/Д
Описание
Код события: 3005
Сообщение о событии: Произошло необработанное исключение.
Сведения об исключении:
Тип исключения: HttpException
Сообщение об исключении: Не удалось проверить данные.

Причина

Обновление для системы безопасности, описанное в бюллетене MS10-070, изменяет метод шифрования по умолчанию в ASP.NET. Новый метод, используемый по умолчанию, обеспечивает также подтверждение подлинности даже в тех случаях, когда запрашивается только шифрование. Этот используемый по умолчанию метод изменяет зашифрованное содержимое на серверах, к которым применяется данное обновление. К этому содержимому могут относиться данные о состоянии просмотра и куки-файлы проверки с помощью форм. Если обновление для системы безопасности было установлено только на некоторые серверы веб-фермы, возникает разница в используемых методах шифрования и расшифровки одной и той же полезной нагрузки на разных серверах веб-фермы, что и приводит к возникновению исключений. Подобная ситуация может складываться и в тех случаях, когда хранящиеся на компьютерах куки-файлы проверки подлинности с помощью форм, созданные до установки обновления для системы безопасности, используются после нее.

Кроме того, методы шифрования и расшифровки в разных версиях пакетов обновления для Microsoft .NET Framework 2.0 различаются. Наличие различных пакетов обновления для .NET Framework на веб-ферме с установленным обновлением для системы безопасности приводит к появлению полезной нагрузки, зашифрованной разными способами, и к аналогичным сбоям при расшифровке.

Решение

Убедитесь, что перечисленные ниже условия выполняются на всех серверах, работающих с содержимым ASP.NET.
  • Обновление для системы безопасности установлено на все серверы на веб-ферме, обслуживающие веб-сайт ASP.NET. Если это не так, следует установить обновление на те серверы, на которых оно отсутствует.
  • На компьютерах веб-фермы с любой версией .NET Framework 2.0 должен быть установлен один и тот же пакет обновления, если обновление для системы безопасности MS10-070 устанавливается на все системы. При наличии разницы в установленных пакетах обновления на серверах необходимо установить на все компьютеры последний пакет обновления и переустановить все обновления для системы безопасности. Таким образом, если на одних серверах веб-фермы используется .NET Framework 2.0 с пакетом обновления 1 (SP1), а на других — .NET Framework 2.0 с пакетом обновления 2 (SP2), то следует обновить первые до .NET Framework 2.0 с пакетом обновления 2 (SP2), прежде чем устанавливать обновления для системы безопасности на все компьютеры веб-фермы.
  • Убедитесь, что приложения не используют зашифрованные данные (например, куки-файлы проверки подлинности с помощью форм), созданные до установки обновления. Зашифрованные ранее данные должны быть обновлены после установки обновления для системы безопасности.
Дополнительные сведения об определении версий .NET Framework, а также об установке обновлений для системы безопасности на серверы см. в разделе "Ссылки".

Ссылки

Дополнительные сведения о состоянии просмотра ASP.NET см. в статье
Обзор состояния просмотра ASP.NET
Дополнительные сведения о проверке подлинности ASP.NET с помощью форм см. в статье
Обзор проверки подлинности ASP.NET с помощью форм
Дополнительные сведения о билетах и куки-файлах проверки подлинности ASP.NET с помощью форм см. в следующей статье базы знаний Майкрософт:
910443 Билеты и куки-файлы проверки подлинности с помощью форм
Дополнительные сведения об обработчике веб-ресурсов ASP.NET см. в следующей статье базы знаний Майкрософт:
910442 Работа с веб-ресурсами в ASP.NET 2.0

Свойства

Код статьи: 2431728 - Последний отзыв: 22 декабря 2011 г. - Revision: 6.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft .NET Framework 4.0
  • Microsoft .NET Framework 3.5 Service Pack 1
  • Microsoft .NET Framework 3.5
  • Microsoft .NET Framework 2.0 Service Pack 2
  • Microsoft .NET Framework 1.1 Service Pack 1
Ключевые слова: 
kbprb kbfix kbtshoot kbexpertiseinter kbsurveynew KB2431728

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com