После применения обновления безопасности MS10-070 к серверам, обслуживающим веб-сайты Microsoft ASP.NET, развернутые в веб-ферме, некоторые серверы или приложения в веб-ферме могут столкнуться с одним или несколькими из следующих симптомов:
- Сбой расшифровки данных
- Исключения в обработчиках WebResource или ScriptResource
- Сбои проверки подлинности при использовании проверки подлинности на основе форм
- Исключения "Недопустимое состояние представления"
- Исключения "Не удается проверить данные" при попытке расшифровать данные, такие как файл cookie проверки подлинности на основе форм.
Сбой может проявляться в виде исключения приложения при доступе к приложению 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. Новое поведение по умолчанию после установки обновления для системы безопасности заключается в выполнении проверки в дополнение к шифрованию, даже если запрашивается только шифрование. Это поведение по умолчанию изменяет зашифрованные полезные данные на серверах, где применяется это обновление. Полезные данные могут включать файлы cookie проверки подлинности состояния просмотра и форм. Если веб-ферма имеет только некоторые серверы, на которых применяется обновление для системы безопасности, будут различаться методы шифрования и расшифровки для одной и той же полезной нагрузки на разных серверах в веб-ферме, и это различие в поведении приводит к исключениям. Это также может произойти, если файлы cookie проверки подлинности форм, сохраненные в системах перед применением обновления для системы безопасности, используются после применения обновления для системы безопасности.
Кроме того, методы шифрования и расшифровки различаются для разных версий пакетов обновления 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 с пакетом обновления 1 (SP1) должны быть обновлены до платформа .NET Framework 2.0 с пакетом обновления 2 (SP2) перед применением обновления для системы безопасности на всех серверах в веб-ферме.
- Убедитесь, что приложения не используют зашифрованные данные, например файлы cookie проверки подлинности форм, созданные до применения обновления. Ранее зашифрованные данные должны быть обновлены после применения обновления для системы безопасности.
Дополнительные сведения об обнаружении платформа .NET Framework версий и установке обновлений для системы безопасности на серверах см. в разделе "Ссылки".
Решение
Дополнительные сведения о состоянии представления ASP.NET см. в следующей статье:
Общие сведения о состоянии просмотра ASP.NET Дополнительные сведения о проверке подлинности с помощью форм ASP.NET см. в следующей статье:
Общие сведения о проверке подлинности с помощью форм ASP.NET Дополнительные сведения о ASP.NET билетах проверки подлинности с помощью форм и файлах cookie, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:
910443 Общие сведения о билете проверки подлинности на основе форм и файлах cookie. Дополнительные сведения о обработчике веб-ресурсов ASP.NET щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:
910442 работа с веб-ресурсами в ASP.NET 2.0