In der Webanwendung, an der wir gerade arbeiten, haben wir Company
Entität, die nur die Person bearbeiten kann, die sie erstellt hat.Ressourcenbasierte Autorisierung
Also jedes Mal, wenn die Aktion EditCompany
aufgerufen wird, müssen wir die Datenbank überprüfen und sehen, ob der aktuell angemeldete Benutzer Besitzer des Unternehmens ist. Dies ist nur ein Beispiel, aber wir haben mehr Berechtigungsarten als Eigentümer und mehr Operationen mit Company
.
Wir haben zu Beginn jeder Aktion eine Servicemethode aufgerufen, um zu sehen, ob dieser Benutzer die Berechtigung für diese Ressource benötigt, zum Beispiel companyService.HasEditPermission(userId, companyId)
, und wenn das wahr ist, haben wir weiter verfahren.
Aber vor kurzem hat mir jemand gesagt, dass ein solcher Code nicht im Controller sein sollte, aber ein benutzerdefiniertes Attribut sollte erstellt werden, das diese Berechtigungslogik behandelt und dann setzen wir dieses Attribut auf die Controlleraktion. Aber diese Person ist nicht Asp.Net
Programmierer und er weiß nicht, wie es in Asp.Net
umgesetzt werden sollte. Also meine Frage ist, ist es möglich, so etwas in Asp.Net
zu tun und wenn ja, wie sollen wir das umsetzen?