2011-03-25 78 views
3

這裏是來自MSDN的定義,requestValidationMode 2.0和4.0之間有什麼區別

4.0(默認值)。 HttpRequest對象在內部設置一個標誌,該標誌指示在訪問任何HTTP請求數據時應該觸發請求驗證。這可以保證在請求期間訪問諸如cookie和URL之類的數據之前觸發請求驗證。忽略配置文件中頁面元素(如果有)或單個頁面中的@ Page指令的請求驗證設置。

2.0。請求驗證僅針對頁面啓用,而不針對所有HTTP請求。此外,配置文件中頁面元素(如果有)的請求驗證設置或單個頁面中的@ Page指令的請求驗證設置用於確定要驗證哪些頁面請求。

但我沒有關注,有些可以幫助解釋一下嗎?

回答

2

從.aspx頁被驗證了的惡意請求,而不是所有的請求被驗證你可能有一個看它this

想象的那樣,不僅要求。如果網站從2.0升級到4.0,這可能會導致網站破壞其功能。

說實話,我現在不會爲什麼某些請求失敗。到目前爲止,我只將我的4.0應用程序設置回2.0驗證

<httpRuntime requestValidationMode="2.0" /> 
+0

我剛剛發現了您指向的文章,這使得我對其更感興趣。感謝您的解釋。但我仍然有一個問題。爲什麼「ValidateInput(false)」屬性必須與MVC 3中的requestValidationMode 2.0配合使用。仍然不明白 – fengd 2011-03-25 07:28:49

+0

@ Jun1st:我只能從WebForms角度進行討論,儘管我沒有MVC展示。在WebForms中,您可以將PageLevel上的ValidateRequest指定爲false,但這隻意味着不應驗證.aspx頁面。如果某些其他請求的驗證失敗,您仍然會收到錯誤消息。 – citronas 2011-03-25 07:34:37

+0

是有意義的。謝謝您的回答。欣賞它 – fengd 2011-03-25 08:39:48

相關問題