0

我在这里阅读: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 中

4

2 回答 2

1

您可以使用属性:

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

另请参阅这篇文章:了解 ASP.NET MVC 3 中的请求验证

于 2012-10-15T19:36:18.323 回答
0

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

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

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

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

于 2012-10-15T20:02:54.900 回答