.net报错----A potentially dangerous Request.Form value was detected from the client

问题

   .net项目,项目表单里面需要提交带有<strong></strong>或者<br/>这种带有html标签的字符串,提交标签时候就会出现A potentially dangerous Request.Form value was detected from the client错误,如下面截图:
在这里插入图片描述

原因

    默认情况下,ASP.NET中所有的输入控件会对引发跨站点脚本和SQL注入攻击的潜在不安全因素进行验证,默认的validateRequest为true,通常抛出异常的方式来禁止恶意的内容。所以一般情况下建议就将ValidateRequest设置为true,以对所有的ASP.NET请求进行验证。

解决

   一些场景中,需要将带有HTML的内容进行提交,解决方案:
方案1.<%@ Page ValidateRequest="false" %>
方案2.在配置文件Web.config里面配置

<configuration>
    <system.web>
        <pages validateRequest="false" />
    </system.web>
</configuration>

注意:在.NET4.0或者更高版本的框架里面,需要在web.config里面额外配置。

<configuration>
    <system.web>
    	<httpRuntime requestValidationMode="2.0" />
        <pages validateRequest="false" />
    </system.web>
</configuration>

   而在ASP.NET MVC里面配置是不一样的,需要在后端的方法上面进行以下配置可以解决(楼主搜索很久,上面的配置没起作用,下面这种方式可解决):

[HttpPost]
[ValidateInput(false)]
public ViewResult Edit(FormCollection form)
{
}

参考链接:
https://stackoverflow.com/questions/4361907/asp-net-mvc-3-validaterequestfalse-not-working-with-formcollection
https://stackoverflow.com/questions/81991/a-potentially-dangerous-request-form-value-was-detected-from-the-client

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值