使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

摘要

安全性更新 2638420 (描述於資訊安全佈告欄 MS11-100) 會變更 ASP.NET 建立表單驗證票證的方式。新行為與舊行為不相容。使用舊行為的伺服器無法讀取使用新行為產生的票證,反之亦然。所以如果您用的應用程式是使用表單驗證,則必須執行部署安全性更新 2638420 的特定步驟,以確認所有伺服器都一致使用新行為。

部署指導

因為票證行為變更的緣故,用使用表單驗證之應用程式的系統管理員必須執行部署安全性更新 2638420 的特定步驟,確認所有伺服器已一致地切換為新行為。

如果要判斷您的應用程式是否使用表單驗證,請檢查 System.web 檔案。使用表單驗證的應用程式會使用 System.web 檔案中的下列項目:

<authentication mode="Forms">注意事項

  • 預設驗證模式是「Windows」。

  • 如果確實將 ASP.NET 設定為只使用表單驗證,則 ASP.NET 就只會使用表單驗證。

如果您用的應用程式是使用表單驗證,就必須使用下列其中一個方法部署安全性更新 2638420,以確認您的網站可繼續正確運作。

方法 1
同時將安全性更新 2638420 部署到 ASP.NET Web 伺服陣列中所有使用中的伺服器。如果要執行這項操作,請依照下列步驟執行:

  1. 移除負載平衡器兩指旋轉中一半的 Web 伺服陣列伺服器。

  2. 將更新安裝到這些伺服器上。

  3. 讓剩餘的伺服器一起離線以進行更新時,將移除的伺服器加回兩指旋轉。

方法 2
如果您無法將安全性更新 2638420 一次部署到所有 Web 伺服陣列伺服器,請改用此方法。

注意 我們不建議您使用此方法。當您設定此參數時,您可以在部分 Web 伺服陣列伺服器上安裝安全性更新,然後使用舊行為繼續運作。不過使用此設定參數的伺服器會處於不安全的狀態,且安全性更新中所有修正將無法修正這些伺服器。所以您應移除設定參數,才能在安全更新 2638420 部署到所有 Web 伺服陣列伺服器上時便立即啟用新的安全行為。

請先在 Web.config 或 Machine.config 檔案中設定相容性參數,再安裝安全性更新 2638420 使系統在安裝更新時強制執行舊行為。如果要執行這項操作,請依照下列步驟執行:

  1. 請使用文字編輯器 (如記事本) 開啟 Web.config 檔案或 Machine.config 檔案。

  2. 將下列文字加入檔案中,然後儲存檔案:

    <appSettings>
    <add key="aspnet:UseLegacyFormsAuthenticationTicketCompatibility" value="true" />
    </appSettings>更新並儲存 Web.config 或 Machine.config 檔案之後,您不需要重新啟動電腦或任何服務。設定變更通知會自動循環應用程式集區。

您可以在下列位置找到 Web.config 檔案:

如果是 .NET Framework 4.0 到 4.5 版

C:\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 版 SP1

C:\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> 項目新增到上述的 config 檔案中,則變更就會套用至整個系統,。

已知問題

  • 安裝安全性更新 2638420 之後,票證解密失敗

    啟用新的票證行為之後,所有使用舊行為產生的表單驗證票證就會失效。此問題發生時,使用者狀態是登出的,而伺服器管理員進行票證解密時可能會失敗。

    同時下列錯誤訊息會記錄到事件記錄檔中:

    記錄檔名稱:應用程式
    事件識別碼: 1315
    事件代碼: 4005
    事件訊息:要求的表單驗證失敗。原因:提供的票證無效。


    這些失敗可能會造成未預期的行為。例如,如果網頁是由<授權>元素所保護,就可能會發生「HTTP 401」或「HTTP 302」錯誤。

    安裝安全性更新 2638420 之後,因為先前產生的票證已到期,所以系統管理員將會發生數個上述的票證解密失敗。失敗發生的次數及頻率應會隨著新票證產生的時間越久,而變得越少。如果安裝安全性更新之後,解密失敗仍持續長期發生,這就表示某些 Web 伺服陣列伺服器仍在使用舊的票證行為。例如,如果下列其中一項狀況成立就可能會發生此問題:

    • 一或多個伺服器未安裝安全性更新 2638420。

    • 一或多個伺服器設定了上述的相容性參數。該相容性參數就是本文前段所述的相容性參數。

其他相關資訊

系統不再支援 TicketCompatibilityMode 設定參數

因為安全性更新 2638420 會變更表單驗證票證的格式,所以如果您已安裝並啟用安全性更新 2638420,系統就無法再支援 <forms/ticketCompatibilityMode> 設定參數。

如需有關 <forms/ticketCompatibilityMode> 設定參數的詳細資訊,請造訪下列 MSDN 網站:

有關

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×