ASP.NET machineKey 產生器 - 防止 Viewstate MAC 驗證失敗 - ez2o Studio

產生的 machineKey


※ 將以上 machineKey 加入到 Web.config 的 <system.web>...</system.web> 區段中

軟體說明 軟體說明

ASP.NET中,MachineKey被廣泛應用於ViewState加密、Forms Authentication及Membership Cookie加密、Out-of-Process Session資料加密、Membership密碼雜湊(或加密)... 等運算。由於預設為自動產生,大部分的人(甚至開發者)不曾感受過它的存在,但它卻一直默默扮演捍衛ASP.NET安全的重要角色。比較有機會察覺到MachineKey的場合,多半出現在多台伺服器組成Web Farm的架構中,此時需手動將各伺服器的MachineKey設成一致,以避免ViewState MAC驗證失敗問題。

以上的概念我在剛學ASP.NET時就確立了,最近在處理主機ViewState MAC驗證相關問題時,倒產生了一些新的疑問:

  1. 當MachineKey設為AutoGenerate時,金鑰會如何產生?
  2. MachineKey在什麼情況下會重新產生? (IIS Reset時會嗎?)
  3. 指定IsolateApps時,會如何影響所產生的MachineKey?

秉持追根究底的精神,研讀過相關文件,甚至追蹤了部分ASP.NET核心程式,理出一點頭緒:

...

原文:http://blog.darkthread.net/post-2011-11-20-inside-aspnet-autogenkeys.aspx

machineKey 項目 (ASP.NET 設定結構描述) 設定金鑰,用以進行表單驗證 Cookie 資料及檢視狀態資料的加密和解密,並驗證跨處理序 (Out-Of-Process) 工作階段的狀態識別。
ASP.NET MachineKey自動產生原理剖析 在ASP.NET中,MachineKey被廣泛應用於ViewState加密、Forms Authentication及Membership Cookie加密、Out-of-Process Session資料加密、Membership密碼雜湊(或加密)... 等運算。由於預設為自動產生,大部分的人(甚至開發者)不曾感受過它的存在,但它卻一直默默扮演捍衛ASP.NET安全的重要角色。比較有機會察覺到MachineKey的場合,多半出現在多台伺服器組成Web Farm的架構中,此時需手動將各伺服器的MachineKey設成一致,以避免ViewState MAC驗證失敗問題。
當 ASP.NET 發生 Viewstate MAC 的驗證失敗 ( machineKey ) 問題是這樣的,當 ASP.NET 因為網頁還沒全部下載完成時,使用者就按下網頁中的任意一個 PostBack 的按鈕或連結時,就會發生「Viewstate MAC 的驗證失敗」的錯誤訊息!

發表迴響 發表迴響

工商服務 - 廣告



本工具 QR Code

ASP.NET machineKey 產生器 - 防止 Viewstate MAC 驗證失敗 - ez2o Studio

版權聲明

  • 在瀏覽或使用本網站時,視同使用者已完全接受並瞭解本聲明中所有規範、中華民國相關法規、一切國際網路規定及使用慣例,並不得為任何不法目的使用本網站。
  • 在限於個人及非商業目的的情況下,使用者可依智慧財產權法律之相關規範,自由瀏覽及使用本網站,或下載本網站上明示提供下載之相關資料,但請註明出處。
  • 任何商業機構或團體,非經本站同意,不得以任何形式轉載、重製、散布、公開播送、出版或發行本網站內容。
  • 本網站內所有著作及資料,包括文字、圖片、影像等,均受中華民國著作權法相關條文保護,屬於 ez2o Studio 所有,未經本站合法授權,不得擅自重製、修改、編輯、轉載、或以其他方式非法使用。
  • 本網站外連連結之著作權,屬原網站建構或維護單位所有。
  • 任何個人或非商業機構網站均可自由以超連結方式連結本網站。

免責聲明

本網站對於任何使用或引用本網站網頁資料引致之損失或損害,概不負責。本網站亦有權隨時刪除、暫停或編輯本網站所登載之各項資料,以維護本網站之權益。
除法律規定在任何情況下,本網站對於:
  • 使用或無法使用本網站之各項服務。
  • 經由本網站取得訊息或進行交易。
  • 第三人在本網站上之陳述或作為。
  • 其他與本網站服務有關之事項。
所導致之任何直接、間接、附帶、特別、懲罰性或衍生性損害,一概不負賠償責任。