2009-05-28 41 views
0

我有一個使用表單身份驗證的Web應用程序。當我執行以下步驟驗證視圖狀態MAC在Safari中失敗

  1. 讓登錄cookie過期,需要登錄的用戶在鏈接上
  2. 點擊
  3. 用戶被重定向到登錄頁面
  4. 點擊瀏覽器的後退按鈕
  5. 用戶被重定向到登錄頁面再次
  6. 登錄使用有效的用戶名/密碼

我得到這個異常 viewstate MAC的驗證失敗。如果此應用程序由Web Farm或羣集託管,請確保配置指定相同的驗證密鑰和驗證算法。 AutoGenerate不能在羣集中使用。

這種情況只出現在Safari(Windows和Mac)中。 Safari和其他瀏覽器的根本區別在於,當我們在步驟4中單擊後退按鈕時,Safari會再次顯示登錄頁面,而其他瀏覽器會顯示用戶正在處理的上一頁。

請在這方面

回答

0

的幫助,而我已經看到了我的日誌的錯誤,讓我相信,我面臨着同樣的問題,因爲你,我還沒有能夠重現錯誤的示例應用程序。我的猜測是來自超時頁面的視圖狀態信息正被提交給登錄頁面,該頁面無效。爲了糾正這種情況,可以在登錄頁面生命週期的早期(可能是Page_Init)提供一些能夠識別何時重定向登錄頁面(可能通過referer)並規避視圖狀態驗證的東西。

1

從Safari v 5.1.4開始,我們遇到了與viewstate類似的問題。

我們的問題是由於我們在window.onload事件期間提交了一個表單,然後重定向到一個新頁面而引起的。當提交第二頁時,我們會得到你正在報告的誹謗。

我們確定野生動物園5.1.4和5.1.5將派遣前一個頁面視圖狀態時,我們提交了導致驗證錯誤

見我的回答在這個線程第二頁ASP.NET Viewstate with Safari 5.x