我正在构建一个针对特定需求的脚注编辑器,我需要一个显示特殊字符的下拉列表,例如匕首(&#134)。不确定它是否重要,但是下拉列表是一个ajax模式弹出窗体。每当我尝试显示弹出窗体时,我都会收到错误“从客户端检测到一个潜在危险的Request.Form值(ctl00 $ MainContent $ ucFootNoteList $ DropDownList1 =”*,&#134“)。“
我尝试添加 < httpRuntime requestValidationMode =“2.0”/> 到Web.config文件。
如果没有出现此错误,如何在此方案中显示特殊字符?
答案 0 :(得分:1)
您可以在相应WebForm的页眉上设置validateRequest
属性,以禁用请求验证并允许发布HTML字符:
<%@ Page validateRequest="false" %>
这也可以在web.config中的所有WebForms全局完成:
<pages validateRequest="false" />
这是MSDN上的an article
,您可以在其中阅读有关ASP.NET中请求验证的更多信息。
答案 1 :(得分:1)
您可以禁用ValidateRequest属性,但[非常重要!]请使用像AntiXss这样的库来清理您的输入,如下所示:
否则您将容易受到输入攻击(注入,xss等)
实际上你的请求“有潜在危险”的原因是因为运行时认为有些人试图注入一些HTML,这就是为什么你不能插入&lt; bla&gt;
答案 2 :(得分:-1)
禁用ASP.NET请求验证功能。为此,在Web页面的.aspx文件中,设置此处显示的Page ValidateRequest设置。
<%@ Page ValidateRequest="false"%>
或者,在Web应用程序的Web.config文件中,将该部分的validateRequest属性设置为false。
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>