![](/img/trans.png)
[英]ValidateInput(false) doesn't seem to work when running under IIS
[英]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結合使用時出現的錯誤所導致的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.