【发布时间】:2013-03-12 04:08:00
【问题描述】:
当我在表单中输入 HTML 字符(例如 <br />)时,ASP.NET 会引发内部 500 异常,如 here 所述。
A potentially dangerous Request.Form value was detected from the client (Name="<br />").
好的,所以它可以保护我免受可能用于恶意原因的未编码字符。
问题是,在我漫长的搜索中没有得到任何答案,该怎么做。 IE。当用户输入错误字符时,我的应用程序不应该只是抛出一个通用的内部服务器错误(如果他们正在绘制诸如
最好直接返回带有ModelState 错误的页面,上面写着“请不要使用 HTML 字符”或其他有意义的内容。
但是如何实现呢?错误在到达我的代码之前就被抛出了。此外,我不想通过validateRequest="false" 将其关闭,然后必须验证我的应用程序中的每个表单是否有 HTML 字符并返回错误。
有没有办法让这种类型的验证保持启用状态,但只是以不同的方式处理它?
澄清代码:
Model
Public Class SomeModel
Public Property SomeField As String
End Class
Controller
<HttpPost>
Function SomeController(ByVal model As SomeModel)
' model.SomeField contains some HTML characters :O
' but it doesn't matter, since an internal error has occured :(
End Function
【问题讨论】:
-
更新了我的问题以包含一些代码,用于上下文。
标签: asp.net asp.net-mvc validation vb.net character-encoding