表格发布错误

时间:2009-08-26 14:56:07

标签: asp.net vb.net

任何人都可以解释可能导致此错误的原因。我在想它的引号。

Exception Details: System.Web.HttpRequestValidationException: A potentially
dangerousRequest.Form value was detected from the client
(ctl00$ContentPlaceHolder1$DetailsView1$txtContent="...l economy.<br /><br />The
Prop...").

6 个答案:

答案 0 :(得分:1)

控件的内容(可能是文本框)包含ASP.net认为是标记的内容,例如:

<br /><br />

您可以将ValidateRequest =“false”添加到.aspx文件中的Page指令中,如下所示:

<%@ Page ........ ValidateRequest="false" ........ %>

正如其他答案所述,asp.net正在尝试保护您免受潜在的恶意输入,因此请确保您了解风险并对用户数据进行适当编码/解码。

答案 1 :(得分:1)

答案 2 :(得分:0)

那将是'&lt;'和'&gt;'。

编辑:假设在表单响应中包含html条目旨在攻击表单所在的服务器。因此,默认情况下,任何类似于html的代码(即包含'&lt;'或'&gt;')都会自动标记为问题。

解决此问题的一种方法是通过在该页面的Page指令中设置 validateRequest =“false”来关闭此类验证,但还有其他(和更好的)解决方法这一点。

Here's Microsoft提供的有关此问题的一些信息。

答案 3 :(得分:0)

它的html“&lt; br /&gt;”标签

这是an article with a brief explanation。还向您展示了如何通过关闭验证来解决它。虽然我猜想关掉它会有点危险。

答案 4 :(得分:0)

实际应该是

<br /><br />
抱怨它。

答案 5 :(得分:0)

我的想法:允许抛出此异常。使用Application_Error处理程序编写代码,该代码重定向(使用Response.Redirect - 这很重要,因为这使用户的浏览器能够返回)用户到自定义错误页面。在此页面上写一些文字,解释用户输错了一些文字。类似的东西:

“亲爱的用户,您输入了一些无效的文字,例如”&lt;“或”。“。请输入仅使用字符和数字的文字”。

在该页面上放置一个链接,此链接可以包含一个javascript“后退”命令:

href="javascript: history.go(-1)"

点击此链接后的用户将被他们的浏览器重定向到上一页,他们可以在那里重新编辑他们的输入。