如何在ASP.NET MVC、IIS Express中禁用请求验证

本文关键字:Express 验证 请求 IIS ASP NET MVC | 更新日期: 2023-09-27 18:15:25

.Net Framework 4.5.2,Visual Studio 2015,IIS Express

我想向我的应用程序发送类似http://localhost:49974/xxx/xml/<a><b></b></a>的请求。这会导致服务器错误,并显示消息:A potentially dangerous Request.Path value was detected from the client (="/xxx/xml/<a><b></b></a>").

按照MSDN中的说明,我设置了requestValidationMode="2.0":

<system.web>
  <httpRuntime requestValidationMode="2.0" targetFramework="4.5.2" />
</system.web>

并将[ValidateInput(false)]添加到科特勒的动作中:

[ValidateInput(false)]
public ActionResult Xml()
{
    return View("../Home/Index");
}

然而,我仍然在上面提出的请求中遇到了完全相同的错误。

如何在ASP.NET MVC、IIS Express中禁用请求验证

如果您能够将acionmethod转换为使用模型来接收数据,则可以在modelproperty上指定[AllowHtml]属性。

这也确保了只跳过此特定属性的验证。

操作方法:

public ActionResult Xml(XmlModel vm)
{
    return View("../Home/Index");
}

型号

public class XmlModel
{
    [AllowHtml]
    public string xml { get; set; }
}

你的url看起来像http://localhost:49974/xxx/xml/?xml={您的xml字符串}