Ich schreibe ein ABAC -System, in dem ich entscheiden werde, ob ein Benutzer auf bestimmten Rollen/Attributen/usw. auf bestimmte Daten zugreifen kann. Es gibt jedoch eine besondere Art von Benutzern (so etwas wie Super-Administrator), der immer überall auf alles zugreifen sollte.
Ich möchte nicht alle Richtlinien, Controller, Aktionen und Methoden durchgehen und diese spezifische Rolle überprüfen. Gibt es eine Möglichkeit, dies auf zentralere Weise zu tun? (Zum Beispiel: Im Start -up ).
Ich möchte jedoch irgendwie "das Gegenteil". Ich meine so etwas wie ein Autorizealways , das das folgende Verhalten hatte:
Code: Select all
[AuthorizeAlways(Roles = "SuperAdministrator")]
public class ControlPanelController : Controller
{
[Authorize(Roles = "SetterUser")]
public ActionResult SetTime()
{
}
[Authorize(Roles = "PowerUser")]
[MinimumAgeAuthorize(50)]
public ActionResult ShutDown()
{
}
}
In diesem Fall möchte ich, dass der Superadministrator (auch wenn sie 49 Jahre alt sind) Zugriff auf überall hat. Ein SetterUser hat nur auf setTime zugegriffen und nur ein Poweruser , der älter als 50 Jahre ist, kann zu einem Stilldown zugreifen.
Ich weiß nicht, ob dies sehr sinnvoll ist. Ist es möglich? Wo könnte ich das machen? Danke!