2009-07-13 22 views
1

如果我有兩個自定義的IAuthorizationFilter實現,並且它們都應用於控制器中的方法,那麼我們如何確定首先執行哪個過濾器?應用於控制器/方法的AuthorizationFilter的順序

例如

聲明:

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

應用:

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

通過實驗似乎Authenication之一,因爲它被放在更靠近控制器聲明執行第一隻是......我們可以指定訂單還是默認行爲?

謝謝!

回答

3

使用Order屬性:

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

有趣!訂單是訂購的方式! 我仍然想知道爲什麼默認的訂單是首先執行的訂單... – 2009-07-13 14:08:53