使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

将安全更新 MS10-070 应用到为 Web 场中部署的 Microsoft ASP.NET 网站提供服务的服务器时,Web 场中的某些服务器或应用程序可能遇到一个或多个以下症状:

  • 无法解密数据

  • WebResource 或 ScriptResource 处理程序发生异常

  • 使用窗体身份验证时身份验证失败

  • “Invalid Viewstate”(无效的视图状态)异常

  • 尝试解密数据(例如窗体身份验证 Cookie)时出现“Unable to validate data”(无法验证数据)异常

访问 ASP.NET 应用程序时,操作失败可能显示为应用程序异常,并且还可能在应用程序日志中记录类似于以下内容的信息。


消息 1:

System.Web.HttpException :Unable to validate data. at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo, Boolean signData)
消息 2:


Event Type:Warning
Event Source:ASP.NET 2.0.50727.0
Event Category:Web Event
Event ID: 1309
Date:Date
Time:Time
User:N/A
Description:
Event code: 3005
Event message:An unhandled exception has occurred.
Exception information:
Exception type:HttpException
Exception message:Unable to validate data.

原因

公告 MS10-070 中的安全更新将更改 ASP.NET 中的默认加密行为。在安装安全更新之后,新的默认行为除了执行加密之外,还将执行验证(即使只请求进行加密)。该默认行为将更改在其上应用此更新的服务器的加密负载。负载可能包括视图状态和窗体身份验证 Cookie。如果 Web 场只包含应用了安全更新的某些服务器,则在 Web 场中的不同服务器上,对同一负载的加密和解密方法将不同,这种行为差异将导致异常。如果在应用安全更新之前,系统上暂留的窗体身份验证 Cookie 在应用安全更新之后使用,则也会发生此行为。

此外,对于不同 Service Pack 版本的 Microsoft .NET Framework 2.0,加密和解密方法不同。因此,如果 Web 场环境中包含不同 Service Pack 级别的 .NET Framework 且安装了安全更新,将导致不同的加密负载和相似的解密问题。

解决方案

验证为 ASP.NET 内容提供服务的所有服务器是否均满足以下条件:

  • 为 Web 场中的 ASP.NET 网站提供服务的所有服务器必须安装安全更新。如果某些服务器未安装安全更新,则必须将更新应用到这些服务器。

  • 如果将 MS10-070 安全更新应用到所有系统,则 Web 场中的所有计算机运行的某些版本的 .NET Framework 2.0 必须是同一 Service Pack 级别。如果服务器上的 Service Pack 级别不同,则必须将所有服务器更新到最新 Service Pack,并重新应用所有安全更新。因此,如果 Web 场中的某些服务器运行的是 .NET Framework 2.0 SP1,而其他服务器运行的是 .NET Framework 2.0 SP2,则在您将安全更新应用到 Web 场中的所有服务器之前,必须将所有 .NET Framework 2.0 SP1 服务器升级到 .NET Framework 2.0 SP2。

  • 确保应用程序未使用加密数据,例如应用更新之前生成的窗体身份验证 Cookie。应用安全更新之后,必须刷新以前加密的数据。

有关如何检测 .NET Framework 版本和服务器上安全更新安装的详细信息,请参阅“参考”部分。

参考

有关 ASP.NET 视图状态的详细信息,请参阅以下文章:

ASP.NET 视图状态概述有关 ASP.NET 窗体身份验证的详细信息,请参阅以下文章:

ASP.NET 窗体身份验证概述有关 ASP.NET 窗体身份验证票证和 Cookie 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

910443 了解窗体身份验证票证和 Cookie有关 ASP.NET Web Resource 处理程序的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

910442 使用 ASP.NET 2.0 中的 Web Resources

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×