Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

摘要

安全性更新 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 網站:

有關

Need more help?

Want more options?

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

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

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×