2009-11-09 4 views
5

Ich habe 2 Attribute, die ich innerhalb der Controller meiner MVC-Anwendung verwende. AttributeA erweitert System.Web.Mvc.AuthorizeAttribute und AttributeB erweitert System.Web.Mvc.ActionFilterAttribute. Ich möchte, dass AttributeB immer zuerst ausgeführt wird.FilterAttribute Auftrag funktioniert nicht

Ich habe alle möglichen Kombinationen der Reihenfolge basierend auf this article versucht, aber AttributA ist immer vor AttributeB ausgeführt. Kann jemand helfen?

Antwort

6

Wenn Sie an der System.Web.Mvc.ControllerActionInvoker.InvokeAction Methode mit Reflektor betrachten, werden Sie sehen, dass alle Filter IAuthorizationFilter Umsetzung vor Attribute von ActionFilterAttribute Ableiten aufgerufen werden, und das ist, weil Genehmigung vor dem Aufruf der Aktion durchgeführt wird.

+0

Danke! Ich habe dies einfach auf einem IAuthorizationFilter getroffen, der über Ninject registriert wurde. –