【问题标题】:how to decorate action in web api with ValidateInput(false)如何使用 ValidateInput(false) 在 web api 中装饰动作
【发布时间】:2017-06-25 21:58:01
【问题描述】:

我需要从普通的MVC 控制器迁移到WebApi 控制器。

我的普通 mvc 控制器。

[HttpPost]
[ValidateInput(false)]
public ActionResult Validate(string data)
{

}

WebApi 控制器

[HttpPost]
[ValidateInput(false)] 
// the moment I resolve the namespace System.Web.Mvc all the [HttpPost],[HttpGet] starts throwing error.
public HttpStatusCode Post([FromBody]string data)
{

}

有人可以解释为什么会这样以及如何解决这个要求吗?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-web-api action-filter


    【解决方案1】:

    要拥有一个 Api 控制器,您必须从 ApiController 继承。此外,如果通过添加命名空间开始出现错误,则必须将命名空间显式添加到属性中,例如,像这样。 System.Web.Http.HttpPost.

    【讨论】:

      【解决方案2】:

      实际上不必在 Web api 中使用 [ValidateInput(false)] 之类的东西,它的目的是防止 MVC 应用程序中的 XSS 攻击。

      此外,您必须引用的命名空间是 System.Web.Http

      【解决方案3】:

      我在 here 的 javascript 中使用了 htmlEncode,在 C# 中使用了 HttpUtility.HtmlDecode

      【讨论】:

        猜你喜欢
        • 2014-10-27
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-06
        相关资源
        最近更新 更多