Ich habe Sätze von Controllern, die jeweils für jeden Autorisierungstyp verwendet werden. Zum Beispiel wird eine Klasse-A-Autorisierung eine Gruppe von Controllern haben, die jeweils eine Autorisierung der Klasse A erfordern. Gibt es eine Möglichkeit, ein [Authorize(Role="Class A")]
-Attribut irgendwo zu platzieren, das für jeden dieser Controller gilt, ohne jeden Controller mit dem gleichen Attribut ausstatten zu müssen?
2 oder 3 Antworten hier erklärt, wie Sie es tun können ... aber Sie können auch Fluent Security verwenden, um alle Controller zu behandeln + Aktionen in einer Datei eingerichtet. Einige der Vorteile (von ihrer Website):
Codebasierte Konfiguration
Keine Attribute oder XML, die den Code überladen.
Niedriger Druck
Fließende Sicherheit wird sich in Ihrer Anwendung nicht wie ein Lauffeuer verbreiten. Ihre Konfiguration kann in einer einzigen Datei gespeichert werden.
Sie können von einem Basis-Controller wie
erben %Vor%Sonst würden Sie einen globalen Filter betrachten, und bei Ihrer Frage nehme ich an, dass Sie mehrere Rollen und Mengen haben, also glaube ich nicht, dass globale Filter für Sie sind.
Setzen Sie das Attribut auf eine Basisklasse und erben Sie, und erstellen Sie die Hierarchie, die am besten zu Ihrem Szenario passt ...
Tags und Links asp.net-mvc asp.net-mvc-3 controller authorize-attribute authorize