簡體   English   中英

ValidateInput屬性似乎不適用於ASP.NET MVC

[英]ValidateInput Attribute Doesn't Seem To Work in ASP.NET MVC

我試圖繞過“潛在危險的Request.Form值”錯誤,我沒有運氣。 是的,是的,我已經閱讀了所有其他與StackOverflow相關的問題,但似乎沒有一個問題讓我更接近答案。 我在所有相關的控制器操作上使用[ValidateInput(false)] ...我已經多次檢查過了。 我在所有相關的ASPX視圖中使用ValidateRequest='false'

我正在使用ASP.NET MVC 2 Preview 1,但我不認為這是一個問題,因為錯誤在框架中生成較低; Page.ProcessRequest確切。 我看不到任何我做錯的事情,我甚至在web.config中設置了<page validateRequest='false'> ,但也沒有解決它。

使用asp.net 4,您還需要在web.config中配置驗證模式。

將以下內容設置為<system.web>元素的子元素:

<httpRuntime requestValidationMode="2.0"/>

Asp.Net 4默認將requestValidationMode設置為4.0 ,它告訴系統在HTTP請求的BeginRequst階段之前執行請求驗證。 驗證將在系統到達action屬性之前發生,告訴它不驗證請求,從而使屬性無效。 設置requestValidationMode =“2.0”將恢復為asp.net 2.0請求驗證行為,允許ValidateInput屬性按預期工作。

(感謝Jim - upvotes屬於這里

嗯...回答了我自己的問題......罪魁禍首: Html.RenderAction<T> 如果在請求上下文中有任何其他操作的調用(例如,來自母版頁或子部分),則這些操作還需要適當地設置[ValidateInput(false)] 這似乎是一個問題,雖然使用MVC或Page對象在ASP.NET中的工作方式,因為這是一個真正混淆的錯誤。

您必須將該屬性添加到請求期間調用的每個控制器操作,即檢查所有部分請求。

請注意,這些建議無法解決因必須將[ValidateInput(false)]與FormCollection結合使用時出現的錯誤所導致的問題。

請參閱: ASP.NET MVC 3 ValidateRequest(false)不使用FormCollection

暫無
暫無

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

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