Mam klasę ApiController
z 10 metod publicznych w nim.Czy metoda rezygnuje z klasy AuthorizeAttribute na poziomie klasy?
Spośród tych 10 metod dziewięć wymaga [Authorize(Roles="Admin")]
. Ten, który tego nie robi, nie wymaga żadnej autoryzacji.
Gdyby nie ta jedyna metoda, która nie wymaga autoryzacji, ozdabiałbym klasę ApiController
z [Authorize(Roles="Admin")]
.
Zamiast na poziomie klasy, dekoruję wszystkie dziewięć metod tym samym [Authorize(Roles="Admin")]
i nie dekoruję tej pojedynczej metody za pomocą [Authorize(...)]
.
To, co mi się nie podoba, to to, że muszę powtórzyć to samo [Authorize(Roles="Admin")]
dziewięć razy.
Czy istnieje sposób, że mogę zamiast tego nadal dekorować klasę za pomocą [Authorize(Roles="Admin")]
i dekorować tylko jedną metodę, która nie powinna mieć [Authorize(Roles="Admin")]
z atrybutem, który oznacza coś w stylu "nie stosuj filtru akcji na poziomie klasy dla ta konkretna metoda "?
Tak więc '[AllowAhnonymous]' na metodzie zastąpi '[Authorize]' na klasie, tak? – core
Zgadza się. Zobacz tutaj: http://weblogs.asp.net/jongalloway/asp-net-mvc-authentication-global-authentication-and-allow-anonymous –