簡體   English   中英

ASP.NET 4.0 MAC驗證失敗

[英]ASP.NET 4.0 MAC validation failure

首先,我應該提到我對C#和ASP.NET 4.0還是很陌生。 解決這個問題的方法可能很簡單,所以請不要問基本問題。

我繼承了一個ASP.NET 4.0應用程序,該應用程序由於<page enableViewStateMac="false"> (不是我的錯)而未能通過自動化安全測試。 當然,我打開了它。 那時出現了一種非常具體的行為模式:

1)我可以導航到應用程序登錄頁面

2)嘗試單擊離開登錄頁面的任何鏈接都會導致“驗證視圖狀態MAC失敗...”錯誤。

2a)例外情況是,單擊將我帶到着陸頁(我已經在其上的頁面)的鏈接就可以了

我應該提到,通過Response.Redirect(...)可以導航到其他ASP。 如果直接將網址輸入到導航欄( http://dummyhost.com:12345/Enroll.aspx ,而不是http://dummyhost.com:12345/LandingPage.aspx ,則可以成功導航到頁面),然后單擊在注冊上)。

在母版頁的Page_Init()方法中,我正在設置:

Page.ViewStateUserKey = Session.SessionID;

如果我注釋掉這一行,則可以打開MAC,該應用程序將非常令人滿意。 誰能闡明正在發生的事情?

最可能的原因是某些登陸頁面特定的數據正在提交給服務器,並通過對Response.Redirect的調用而保持不變,因此注冊頁面嘗試讀取特定於登陸頁面的數據,但由於該數據而導致請求失敗無法正確解釋。

如果要生成簡單的鏈接,請考慮直接在標記中使用<a href="Enroll.aspx"> ... </a>,而不是使用Response.Redirect。 這將導致瀏覽器向指定的資源發出原始HTTP GET請求,而沒有任何當前頁面特定的日期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM