相当于mvc3中的validateRequest

时间:2012-10-15 19:30:22

标签: c# asp.net asp.net-mvc-3

我在这里阅读:http://msdn.microsoft.com/en-us/library/ff649310.aspx#paght000004_step1在你的machine.config的第一步设置:

<system.web>
  <pages buffer="true" validateRequest="true" />
</system.web>

这是否已在mvc3中使用[Authorize]过滤器处理?或者我还应该把它放在我的web.config

2 个答案:

答案 0 :(得分:1)

您可以使用属性:

[ValidateInput(false)]
public ActionResult Index(string InputText)
{
    return View();
}

另见本文:Understanding Request Validation in ASP.NET MVC 3

答案 1 :(得分:0)

使用[授权]过滤器,您可以将特定操作/控制器的访问权限限制为所选用户和角色。

请求验证基本上断言在操作中提交的值不是潜在有害的html字符串(将它们未编码回页面可能是危险的)。您可以通过属性validateRequest =“true / false”使用配置文件控制全局级别的请求验证。您可以使用动作过滤器覆盖配置文件设置([ValidateInput(true / false)])(还有一些其他选项)。

当然,您可以将这两件事联系起来,它们都是某种类型的验证和安全机制。尽管如此,它们都是非常不同的验证类型,你应该将它们视为相当独立的东西。

回顾您的问题,您应该在web.config中放置validateRequest =“true”(因此无论machine.config设置如何,您都将进行请求验证)。