使用:Visual Studio 2010中使用ASP.net 4.0URL重寫回傳與ViewStateMac啓用
我有一個網站,該網站將使用URL重寫,我想繼續回發的重寫URL。我已經閱讀了很多關於這個主題的主題,但我仍然無法弄清楚這是否可行。
例如:
http://localhost/ActualPage.aspx?PageID=4
被重寫爲:
http://localhost/member/forum.aspx
該頁面包含若干其使用回傳(例如Telerik的radgrid控件與排序和分頁)對照。通常當回發發生時,瀏覽器被重定向到unrewritten網址 - 地址欄顯示/ActualPage.aspx?PageID=4
等。在這種情況下,一切工作正常。
不過,我想保留回傳後重寫URL,所以我已經編寫改變Form.Action
屬性是重寫URL像這樣:
Page.Form.Action = "/member/forum.aspx"
現在這一頁正確保留的URL地址但是當回發發生時拋出"Validation of viewstate MAC failed" error
- 我也期望它,因爲視圖狀態來自不同的URL。
奇怪的是,即使enableViewStateMac
設置爲false(無論是在頁面還是在web.config
中),都會出現此問題 - 但我不想禁用此功能。
實際上,我認爲我需要做的是告訴頁面/視圖狀態的授權,這是可以接受來自這個替代URL的輸入,但我找不到這樣做。我試過不同的URL重寫系統,看看是否有所作爲,我試着添加一個生成的machineKey - 兩者都沒有任何區別。有沒有辦法做到這一點?
總之我想:
- 與回傳要去重寫URL重寫頁面
- ViewStateMac啓用
- 沒有視圖狀態驗證錯誤
我記得在早期版本的.NET使用.browser
文件與FormRewriterControlAdapter
,但這似乎沒有在.NET 4中有任何區別(我不記得它是否成功保留了UR L)。