2009-09-29 59 views
0

我有ASP.NET MVC应用程序与应该处理张贴的XML数据的操作。在Cassini正在处理一切正常,但是当我将应用程序部署到IIS6时,出现以下错误。如何禁用IIS6中运行的ASP.NET MVC中的请求验证?

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); 
} 

没有帮助。

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

编辑:对不起。像往常一样,我完全是我的错误。我设置通配符映射后,一切工作正常。

回答

2

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

+0

是这是触发此问题的发布请求。我还尝试将AcceptVerbs(HttpVerbs.Post)和ValidateInput(false)添加到特定的方法,但它似乎已在IIS6中生效。 – 2009-09-29 14:27:43

+0

奇怪 - 这应该工作。你确定发布该行动,而不是一个不同的? – RichardOD 2009-09-29 14:36:02

2

正如理查德说,你应该把它放在action方法接受输入:

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

认沽[ValidateInput(假)]在您的控制器的方法后您的ActionResult以上....