授权操作过滤器和授权过滤器之间有什么区别?

Dfr*_*Dkn 12 c# asp.net-mvc filter asp.net-mvc-4

根据ASP.NET网站

ASP.NET MVC框架包括几个动作过滤器:

  1. OutputCache - 此操作过滤器将控制器操作的输出缓存指定的时间量.
  2. HandleError - 此操作过滤器处理控制器操作执行时引发的错误.
  3. 授权 - 此操作筛选器允许您限制对特定用户或角色的访问.

此外,MVC中有一种称为"授权过滤器"的过滤器.

我很困惑[Authorize]属性是Action过滤器还是Authorization过滤器?什么时候会执行?

Nig*_*888 5

授权操作过滤器和授权过滤器之间有什么区别?

没有.

该文档显然是不正确的(如果您在目录中注明,它是针对MVC的版本1和2,那么它也是过时的).

AuthorizeAttribute继承IAuthorizationFilter,所以它实际上是一个授权过滤器,而不是一个动作过滤器.MVC中没有授权操作过滤器.

请注意,对于MVC 3到MVC 5,您应该在将来参考ASP.NET MVC文档中的最新过滤.

什么时候会执行?

根据MSDN:

过滤器按以下顺序运行:

  1. 授权过滤器
  2. 动作过滤器
  3. 响应过滤器
  4. 异常过滤器