我有一個使用ckeditor的表單。這種形式在Asp.Net 2.0和3.5中運行良好,但現在它在Asp.Net 4+中不起作用。我有ValidateRequest =「false」指令。有什麼建議麼?ValidateRequest =「false」在Asp.Net中不起作用4
回答
在錯誤頁面找到解決方案。只是需要加入requestValidationMode = 「2.0」
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
這真棒,但有誰知道一種方法來設置每頁?另外我怎麼把它放在web.config中,以便它仍然可以與.NET 2一起使用? – 2010-06-18 20:43:05
@MK:我不認爲這個設置有頁面指令。你不能讓它在.net 2上運行。我不認爲這是必要的。因爲您可以構建僅針對一個框架版本的Web應用程序。只需將此行復制到需要它的.net 4 web.config ... – 2010-06-18 23:23:10
但是.net 4的驗證中發生了什麼變化?有沒有辦法做到這一點,而不改變驗證模式? – Sly 2010-12-10 14:12:00
有辦法把驗證回到2.0一頁。只需將下面的代碼添加到您的web.config:
<configuration>
<location path="XX/YY">
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
</location>
...
the rest of your configuration
...
</configuration>
它也適用於文件夾嗎? – 2011-05-27 10:11:55
位置是任何路徑,並且基於您在樹中指定的文件夾下的任何節點。 – DFTR 2011-10-24 23:04:43
這是比接受的答案更好的解決方案,因爲它不是應用程序範圍,而是狹窄到您在位置路徑中定義的特定範圍 – 2013-02-13 00:43:30
此工程在不改變驗證模式。
您必須使用System.Web.WebPages.dll
的System.Web.Helpers.Validation.Unvalidated
幫手。它將返回一個UnvalidatedRequestValues
對象,該對象允許在不驗證的情況下訪問表單和QueryString。
例如,
var queryValue = Server.UrlDecode(Request.Unvalidated("MyQueryKey"));
作品對我來說MVC3和.NET 4
您能否提供一個如何使用此方法檢索queryString的示例?我一直得到'未經驗證不是...的成員',我嘗試將其附加到所有對象。我想我可能會缺少包括 – CodedMonkey 2012-05-23 21:04:03
var queryValue = Server.UrlDecode(Request.Unvalidated(「MyQueryKey」)); – sfuqua 2012-05-23 21:12:50
這絕對應該是被接受的答案。保持安全性並且非常靈活,因爲您可以選擇性地使用它。 – cmartin 2015-06-05 18:38:48
注意,另一種方法是保持與4.0驗證行爲,而是定義自己的類派生自RequestValidator
並設置:
<httpRuntime requestValidationType="YourNamespace.YourValidator" />
(其中YourNamespace.YourValidator
很好,你應該能猜到......)
通過這種方式,您可以保持4.0s行爲的優點(具體而言,驗證在處理的早期發生),同時還允許您需要通過的請求。
這很好理解。但我仍然認爲ASP.Net的整個請求驗證功能是錯誤的。輸入本身不是問題,這是你*做的*。接受SQL,HTML或JavaScript代碼作爲您的應用程序的輸入可能非常有效,只要您在輸出它或將其存儲在數據庫中之前對其進行正確編碼/轉義即可。 – 2012-08-02 17:36:52
@JordanRieger我部分同意。 OOTB,它至少具有默認安全的優點(不要思考問題,並且你會得到錯誤,而不是錯誤),但這有點令人討厭,4.0之前的行爲非常全面或無效。 在自定義requestValidationType的情況下,有一些能夠在任何其他處理之前獲得使用的驗證層的能力,但是需要將大量驗證與其他處理綁定在一起。總而言之,我認爲它更多的是保護一些(但不是全部)分居人士的壞習慣,而不是鼓勵良好的習慣。 – 2012-08-02 18:13:47
我知道這是一個老問題,但如果你在MVC 3遇到這樣的問題,那麼你可以裝飾你的ActionMethod
與[ValidateInput(false)]
,只是關掉請求驗證單個ActionMethod
,這是很方便的。而且您不需要對web.config
文件進行任何更改,因此您仍然可以在其他地方使用.NET 4請求驗證。
例如
[ValidateInput(false)]
public ActionMethod Edit(int id, string value)
{
// Do your own checking of value since it could contain XSS stuff!
return View();
}
這可以在用戶控件的Page_Load上完成嗎? – 2014-03-20 06:14:11
@RossCooper這隻適用於asp.net MVC – mxmissile 2018-02-06 15:07:13
- 1. validateRequest =「false」在ASP.NET 2.0中不起作用
- 2. ValidateRequest =「false」和.NET 4問題
- 3. ValidateRequest(false)不能與FormCollection一起使用
- 4. web.config中的requestvalidationmode =「2.0」validaterequest =「false」不起作用
- 5. <pages validateRequest =「false」/>和<httpRuntime requestValidationMode =「2.0」/>不起作用
- 6. 發佈HTML值時ValidateRequest =「false」不起作用
- 7. 使用ValidateRequest =「false」的缺點asp.net
- 8. validateRequest =「false」不工作,即使requestValidationMode =「2.0」
- 9. 在ASP中使用設置ValidateRequest爲false
- 10. ValidateRequest =「False」in master page
- 11. MVC 2.0中的ValidateRequest = false .net
- 12. asp.net ValidateRequest = false每個文本框而不是每頁?
- 13. ASP.NET linkbutton enabled = false在Firefox中不起作用
- 14. ValidateRequest =「false」的替代方案
- 15. MenuItem setVisible(false)在Android中不起作用
- 16. 返回false在Firefox中不起作用
- 17. Escape false在primefaces中不起作用?
- 18. 返回false在IE中不起作用
- 19. ASP.NET MVC 4 DropDownList SelectedValue不起作用
- 20. 會話超時不起作用ASP.NET 4
- 21. ASP.NET MVC 4捆綁不起作用
- 22. maxRequestPathLength不在ASP.NET 4文檔中,不起作用
- 23. tinymce與asp.net,ValidateRequest =頁面中爲false,是否危險?
- 24. 爲什麼ValidateInput(False)不起作用?
- 25. JPopupMenu.setDefaultLightWeightPopupEnabled(false)不起作用
- 26. RadioGroup,setEnabled(false)不起作用!
- 27. @Rollback(false)不起作用
- 28. java setEnable(false)不起作用
- 29. javascript「return false」不起作用
- 30. CausesValidation =「false」不起作用
有有關呈現驗證的短文章控制得宜,如果有人關心:[錯誤在.NET中驗證4](http://www.softcircuits.com/Blog/post/2010/06/04/Validation-Controls -Lost-Their-Red-Color.aspx) – Ian 2010-06-15 00:16:39
任何人都可以請讓我知道使用ValidationRequest = false有什麼缺點? – fc123 2014-10-16 16:04:12