Jestem zdezorientowany, czy [Autoryzacja] atrybut jest filtr Akcja lub filtr autoryzacji?
Atrybut [Authorize]
jest filtrem autoryzacji, co można zobaczyć, patrząc na jego kod źródłowy. Jeśli przyjrzeć się bliżej, implementuje interfejs IAuthorizationFilter
i zgodnie z dokumentacją, która klasyfikuje go jako filtr autoryzacji.
namespace System.Web.Mvc
{
//
// Summary:
// Specifies that access to a controller or action method is restricted to users
// who meet the authorization requirement.
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class AuthorizeAttribute : FilterAttribute, IAuthorizationFilter
.........
Gdy jest ona realizowana?
Zgodnie z dokumentów:
Membrany są wykonane w kolejności podanej powyżej. Na przykład, filtry autoryzacji są zawsze wykonywane przed filtrami działania i filtry wyjątków są zawsze wykonywane po każdym innym typie filtru .
Zapraszamy do obejrzenia aktualnej dokumentacji dla filtrowania w MVC: https://msdn.microsoft.com/en-us/library/gg416513(VS.98).aspx
wyraźnie stwierdza, że [Autoryzacja] atrybut jest filtr odpowiedzialny:
Klasa AuthorizeAttribute a klasa RequireHttpsAttribute są przykłady filtru autoryzacji. Filtry autoryzacji działają przed każdym innym filtrem.
Dzięki! To oczyściło moją wątpliwość – TBAG