Einer der Filter in einer Anwendung, die ich entwickle, überprüft, ob ein Benutzer das Element besitzt, das er zu ändern versucht. Die Aktion wird durch das Attribut [RequiresOwnership]
geschmückt, und innerhalb der Attributlogik überprüfe ich, ob der Benutzer das Element besitzt, und falls nicht, werfe ich eine UnauthorizedAccessException
.Wie eine Ausnahme zu fangen, die von einem Filter in .NET MVC ausgelöst wird?
Meine Frage ist das: Wo kann ich diese Ausnahme fangen? Ich möchte den Benutzer im Idealfall auf eine Seite umleiten, die erklärt, warum das, was sie zu tun versuchten, nicht erlaubt war, anstatt nur eine Ausnahmeseite anzuzeigen. Ich glaube nicht, dass ich die Ausnahme in der Aktion fangen würde, die durch das Attribut geschmückt ist. Gibt es also einen Basisbereich der Anwendung, in dem ich Ausnahmen, die höher geworfen werden, im .NET MVC-Modell behandeln kann?
EDIT: Mir ist klar, dass ich über den Filter selbst auf eine Seite umleiten kann, aber das scheint mir ein bisschen hacky zu sein. Es wäre schön, Ausnahmen über Attribute zu werfen und einen Standardplatz zu haben, an dem sie abgefangen und behandelt werden können.
* "Es gibt keinen nützlichen Ort, um Ausnahmen von Attributen abzufangen." * Was ist los mit @ GalacticCowboys Antwort? – seebiscuit