Порядок AuthorizationFilter применяется к контроллеру / методу - PullRequest
1 голос
/ 13 июля 2009

если у меня есть две пользовательские реализации IAuthorizationFilter, и обе они применяются к методу в контроллере, как мы можем определить, какой фильтр выполняется первым?

, например

Декларация:

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

Применяется:

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

В ходе экспериментов кажется, что аутентификация выполняется в первую очередь только потому, что она расположена ближе к объявлению контроллера ... Можем ли мы указать порядок или это поведение по умолчанию?

Спасибо!

1 Ответ

3 голосов
/ 13 июля 2009

Используйте свойство Order:

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