摘要
安全更新 2638420(参见安全公告 MS11-100)将更改 ASP.NET 创建 Forms 身份验证票证的方式。此新行为与之前的行为不兼容。使用旧行为的服务器无法读取使用新行为生成的票证,反之亦然。因此,如果您使用采用 Forms 身份验证的应用程序,则在部署安全更新 2638420 时必须执行特定步骤,以确保所有服务器同时使用新行为。
部署指南
由于票证行为发生更改,其应用程序使用 Forms 身份验证的管理员在部署安全更新 2638420 时,必须执行特定步骤以确保所有服务器同时切换至新行为。
若要确定您的应用程序是否使用 Forms 身份验证,请检查 System.web 文件。使用 Forms 身份验证的应用程序会在 System.web 文件中使用以下条目:<authentication mode="Forms">备注
-
默认身份验证模式是“Windows”。
-
ASP.NET 仅在明确配置的情况下才会使用 Forms 身份验证。
如果您使用采用 Forms 身份验证的应用程序,您必须使用以下方法之一部署安全更新 2638420,以确保您的网站能继续正常运行。
方法 1 将安全更新 2638420 同时部署到 ASP.NET Web 场中的所有活动服务器。为此,请按照下列步骤操作:-
从负载平衡器旋转移除 Web 场中的一半服务器。
-
在这些服务器上安装更新。
-
将这些服务器重新添加至旋转,同时将剩余服务器设置为脱机状态,从而进行更新。
方法 2
如果无法将安全更新 2638420 同时部署到 Web 场中的所有服务器,请改为使用此方法。 注意 我们建议您不要使用此方法。设置此开关时,您可以将安全更新安装在 Web 场中的部分服务器上,然后使用旧行为继续运行。但是,使用此配置开关的服务器将会处于不安全状态,且不会实现安全更新中的所有修复。因此,应在将安全更新 2638420 部署到 Web 场中的所有服务器后尽快删除此配置开关,以便启用新的安全行为。 安装安全更新 2638420 之前,在 Web.config 或 Machine.config 文件中设置兼容开关,以便在安装更新时强制旧行为。为此,请按照下列步骤操作:-
使用文本编辑器(如 Notepad)打开 Web.config 文件或 Machine.config 文件。
-
将以下文本添加至文件,然后保存该文件:
<appSettings>
<add key="aspnet:UseLegacyFormsAuthenticationTicketCompatibility" value="true" /> </appSettings>更新并保存 Web.config 或 Machine.config 文件后,无需重新启动计算机或任何服务。配置更改通知将自动循环应用程序池。
您可以在以下位置找到 Web.config 文件:
.NET Framework 版本 4.0 至 4.5C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Web.config
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Web.config .NET Framework 版本 2.0 – 3.5 SP1C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Web.config
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\Web.config 在 32 位计算机上,只存在 Framework 文件夹。在 64 位计算机上,存在 Framework 和 Framework64 两个文件夹。因此,如果您拥有运行 CLR 2 及 CLR 4 的 32 位和 64 位应用程序池,则必须将该条目添加至这四个文件。 此外,如果您将 <appSettings> 条目也添加至这些配置文件,则将产生系统范围的更改。已知问题
-
安装安全更新 2638420 后,票证解密失败
启用新的票证行为后,所有使用旧行为生成的 Forms 身份验证票证将失效。出现此问题时,最终用户将注销,并且服务器管理员可能会遇到票证解密失败问题。 此外,事件日志中会记录以下错误消息:日志名称:应用程序
事件 ID: 1315 事件代码: 4005 事件消息:此请求的 Forms 身份验证失败。原因:提供的票证无效。-
一个或多个服务器未安装安全更新 2638420。
-
一个或多个服务器设置了上述兼容开关。本文章前面部分已对兼容开关做了介绍。
-
更多信息
TicketCompatibilityMode 配置开关不再受支持
由于安全更新 2638420 会更改 Forms 身份验证票证的格式,因此,如果安装并启用安全更新 2638420,将不再支持 <forms/ticketCompatibilityMode> 配置开关。 有关 <forms/ticketCompatibilityMode> 配置开关的详细信息,请访问以下 MSDN 网站: