Gemäß der ASP.NET-Website
Das ASP.NET MVC-Framework enthält mehrere Aktionsfilter:
Außerdem gibt es in MVC einen Filtertyp namens "Authorization filter".
Ich bin verwirrt, ob das Attribut [Autorisieren] ein Aktionsfilter oder Autorisierungsfilter ist? Und wann wird es ausgeführt?
Was ist der Unterschied zwischen Autorisierungsaktionsfilter und Autorisierungsfilter?
Keine.
Diese Dokumentation ist anscheinend falsch (und wenn Sie im Inhaltsverzeichnis vermerken, ist es für Version 1 und 2 von MVC, also ist es auch veraltet).
AuthorizeAttribute
erbt IAuthorizationFilter
, es handelt sich also um einen Autorisierungsfilter und nicht um einen Aktionsfilter. In MVC gibt es keinen Autorisierungsaktionsfilter.
Beachten Sie, dass Sie für MVC 3 zu MVC 5 auf das aktuelle Filtern in ASP.NET MVC Dokumentation in der Zukunft.
Und wann wird es ausgeführt?
Gemäß MSDN :
Die Filter werden in der folgenden Reihenfolge ausgeführt:
- Autorisierungsfilter
- Aktionsfilter
- Antwortfilter
- Ausnahmefilter
Ich bin verwirrt, ob das Attribut [Autorisieren] ein Aktionsfilter ist oder Autorisierungsfilter?
Das [Authorize]
-Attribut ist ein Autorisierungsfilter, wie man an seinem Quellcode sehen kann. Wenn Sie genau hinsehen, wird die Schnittstelle IAuthorizationFilter
implementiert und gemäß der Dokumentation als Autorisierungsfilter klassifiziert.
Wann wird es ausgeführt?
Wie in der Dokumentation:
Die Filter werden in der oben aufgeführten Reihenfolge ausgeführt. Beispielsweise, Autorisierungsfilter werden immer vor Aktionsfiltern und ausgeführt Ausnahmefilter werden immer nach jedem anderen Typ von ausgeführt Filter.
Sehen Sie sich die aktuelle Dokumentation zum Filtern in MVC an: Ссылка
Es besagt eindeutig, dass das Attribut [Autorisieren] ein Autorisierungsfilter ist:
Die AuthorizeAttribute-Klasse und die RequireHttpsAttribute-Klasse sind Beispiele für einen Autorisierungsfilter. Autorisierungsfilter werden vorher ausgeführt irgendeinen anderen Filter.
Tags und Links asp.net-mvc c# asp.net-mvc-4 filter