如果我有两个IAuthorizationFilter的自定义实现,并且它们都应用于控制器中的方法,我们如何确定首先执行哪个过滤器?
e.g。
声明:
public class MyAuthenticationFilter : FilterAttribute, IAuthorizationFilter
public class MyAuthorisationFilter : FilterAttribute, IAuthorizationFilter
申请:
[MyAuthorisationFilter(AllowedRoles = "Admin")]
[MyAuthenticationFilter()]
public class UsersController : Controller
{
...
}
通过实验,似乎首先执行验证,因为它更接近控制器声明......我们可以指定顺序还是默认行为?
谢谢!
答案 0 :(得分:3)
使用Order属性:
[MyAuthenticationFilter(Order=1)]
[MyAuthorisationFilter(AllowedRoles = "Admin",Order=2)]
public class UsersController : Controller
{
...
}