AuthorizationFilter的顺序应用于控制器/方法

时间:2009-07-13 13:20:56

标签: asp.net-mvc action-filter

如果我有两个IAuthorizationFilter的自定义实现,并且它们都应用于控制器中的方法,我们如何确定首先执行哪个过滤器?

e.g。

声明:

public class MyAuthenticationFilter : FilterAttribute, IAuthorizationFilter
public class MyAuthorisationFilter : FilterAttribute, IAuthorizationFilter

申请:

    [MyAuthorisationFilter(AllowedRoles = "Admin")]
    [MyAuthenticationFilter()]
    public class UsersController : Controller
{
...
}

通过实验,似乎首先执行验证,因为它更接近控制器声明......我们可以指定顺序还是默认行为?

谢谢!

1 个答案:

答案 0 :(得分:3)

使用Order属性:

[MyAuthenticationFilter(Order=1)]
[MyAuthorisationFilter(AllowedRoles = "Admin",Order=2)]
public class UsersController : Controller
{
...
}