Was ist der Unterschied zwischen Autorisierungsaktionsfilter und Autorisierungsfilter?

8

Gemäß der ASP.NET-Website

Das ASP.NET MVC-Framework enthält mehrere Aktionsfilter:

  1. OutputCache - Dieser Aktionsfilter speichert die Ausgabe einer Controller-Aktion für eine bestimmte Zeit im Cache.
  2. HandleError - Dieser Aktionsfilter behandelt Fehler, die beim Ausführen einer Controller-Aktion ausgelöst werden.
  3. Autorisieren - Mit diesem Aktionsfilter können Sie den Zugriff auf einen bestimmten Benutzer oder eine bestimmte Rolle einschränken.

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?

    
DfrDkn 25.06.2016, 13:35
quelle

2 Antworten

5
  

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:

     
  1. Autorisierungsfilter
  2.   
  3. Aktionsfilter
  4.   
  5. Antwortfilter
  6.   
  7. Ausnahmefilter
  8.   
    
NightOwl888 25.06.2016 13:42
quelle
2
  

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.

%Vor%
  

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.

    
HaukurHaf 25.06.2016 13:42
quelle