如何在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");
}
然而,我仍然在上面提出的请求中遇到了完全相同的错误。
如果您能够将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字符串}