如何创建适用于整个区域的过滤器?

时间:2014-09-09 13:28:36

标签: c# asp.net-mvc

我使用C#MVC5并创建了一个AccessAttribute来定义每个用户可以根据他的权限访问的页面。

在我的应用程序中,有一个Area名为Administration,只有" admin"用户可以访问。

问题:是否可以对此区域应用全局过滤器,类似于我们如何将全局过滤器应用于整个项目?

当前解决方案:将AccessAttribute添加到管理部分中的每个类定义。

该解决方案存在问题:如果我只是忘记将该属性添加到类定义中,则攻击者可以访问管理部分。

1 个答案:

答案 0 :(得分:0)

在这里找到答案:

http://blogs.msdn.com/b/rickandy/archive/2012/03/23/securing-your-asp-net-mvc-4-app-and-the-new-allowanonymous-attribute.aspx

我主要担心的是安全性:我不想忘记单个属性(或继承)。

因此,逻辑上的答案是创建一个阻止所有访问的全局过滤器,然后为每个控制器覆盖此属性。就像AuthorizeAttributeAllowAnonymousAttribute一样。