授权过滤器与动作过滤器

时间:2010-06-25 05:58:50

标签: .net action-filter authorize-attribute

我在我的应用程序中使用.NET mvc2。我想要对我的行为进行一些自定义授权。我搜索了一下,似乎有两种选择。

  • 在自定义操作过滤器see this post
  • 中的onActionExecuting中实现逻辑
  • 子类授权归属或实现Iauthorization接口并将我的逻辑放在那里

我的问题是,哪种技术更适合使用每种技术的优点和缺点

编辑:此外,我可以在我的基本控制器中覆盖onActionExecuting和onAuthorization,这使我可以直接访问控制器变量。

1 个答案:

答案 0 :(得分:4)

虽然两个选项都没问题,但最好将AuthorizeAttribute子类化为以下原因:

  1. 分离关注点。
  2. MVC为此目的提供AuthorizeAttribute(不要与框架作斗争)。
  3. 首先运行授权过滤器 - 在其他过滤器之前运行(根据Pro ASP.NET MVC3 Framework,第431页)。这可确保在未经授权的用户访问您的控制器/操作时不会执行不必​​要的代码。