ASP.NET MVC 2中的区域属性?
问题描述:
我的应用程序中的“管理”区域包含一堆控制器,并且在所有这些控制器上放置[Authorize]
属性有点重复。有没有办法告诉框架,某个区域的所有控制器应该具有某些属性?ASP.NET MVC 2中的区域属性?
编辑:在这种情况下,继承不是一个解决方案。首先,控制器已经从自定义类继承,其次,它应该是装饰类,而不是继承它们。
答
MVC 3有一项名为Global Action Filters的新功能,它对于您正在做的事情来说是完美的。由于您可能尚未使用MVC 3,因此您也可以通过遵循this example在较早版本的MVC中实施Global Action Filter。只需自定义解决方案以过滤检查您是否位于当前正在执行的请求的“管理”区域,然后应用您的“授权”属性。
这将允许你做到这一点,而不必按照你的要求应用公共基类。
答
有四个选项,
- 创建一个单独的基本控制器,使管理员sectionsu从它继承
- 添加授权属性的控制器类,而不是每个方法/ Actrion
- 上装饰各单独
- 写你自己的逻辑进行授权,并添加到您当前的基本控制器
好东西,谢谢! – ciscoheat 2010-09-20 08:52:28