如何在IIS6中运行的ASP.NET MVC中禁用请求验证?

时间:2009-09-29 14:15:12

标签: asp.net-mvc

我有ASP.NET MVC应用程序,它应该处理已发布的XML数据。在Cassini工作正常,但当我将应用程序部署到IIS6时,我遇到了以下错误。

A potentially dangerous Request.Form value was detected from the client (xml="<?xml version="1.0" ...").

我尝试用ValidateInput(false)属性装饰控制器,我还向控制器添加了以下方法。

protected override void Initialize(RequestContext requestContext)
{
  ValidateRequest = false;
  base.Initialize(requestContext);
}

没什么用。

你有什么其他的想法我怎么能摆脱这个烦人的请求验证?

修改:抱歉。我像往常一样完全是我的错误。设置通配符映射后,一切正常。

3 个答案:

答案 0 :(得分:2)

是POST方法的(ValidateInput)吗?它只适用于POST。

答案 1 :(得分:2)

正如理查德所说,你应该把它放在接受输入的动作方法上:

[HttpPost]
[ValidateInput (false)]
public ActionResult DoTheThing (StuffBeingPostedBack stuff)
{
    // ...
}

答案 2 :(得分:1)

在控制器的帖子方法中将[ValidateInput(false)]放在ActionResult上方....