ASP.NET Autorisieren Attribut-und Admin-Benutzer-Rolle
Mit Authorize
Attribut ich kann angeben, in Rollen, die Zugriff auf die Ressourcen.
[Authorize(Roles="User")]
Aber wenn ich die admin-Benutzers, die gehen zu dürfen, jede Ressource, die ich brauche geben Sie diese auch
[Authorize(Roles="User, Administrator")]
Aber vielleicht gibt es irgendeine Möglichkeit, das ich sagen kann irgendwie, die Administrator erlaubt, irgendwohin zu gehen und nicht, um anzugeben, diese in Autorisieren Attribut?
Also ich meine wenn irgendwo im code(auf controller oder action) wäre dies [Authorize(Roles="User")]
es bedeutet, dass die Rolle Administrator erlaubt, dorthin zu gehen als gut.
Oder kann ich eventuell einstellen, dass es alle Autorisieren Rollen dynamisch, wie beim start der Anwendung?
Irgendwelche Ideen?
AKTUALISIERT:
Zurzeit habe ich einen admin-controller mit Autorisierung Attribut [Authorize(Role="Administrator")]
und ich habe einige Aktionen in einigen anderen Controller mit Parametern [Authorize(Role="User")]
so will ich hinzufügen müssen "Administrator"
es auch, wenn ich nicht finden eine bessere Lösung.
- war meine Lösung helfen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das wird für Sie arbeiten. Erstellen Sie Ihre eigenen Basis-controller, mit dem AuthorizeAttribute, dann machen Sie Ihren anderen Controller Erben Ihrer Basisklasse.
Das ist beängstigend, obwohl, meiner Meinung nach.
Wie viele Controller/Aktionen haben Sie? Was, wenn Sie vergessen, über diese später und vielleicht haben Sie eine Seite, die Sie nicht möchten, dass Administratoren Zugriff haben?
Wird Debuggen des Codes schwieriger geworden?
Können Sie erstellen eine benutzerdefinierte filter und es verwenden, um schmücken Sie Ihre Aktionen oder Controller mit it.
Dies ist eine einfache Struktur, die ich verwendet habe, ziemlich viel:
Können Sie Lesen, einige mehr hier
Dies ist was ich tun: stellen Sie sicher, dass Benutzer, die in der "Admin" - Rolle auch in der "Benutzer-Rolle".
Müssen Sie das Konzept der Statische Rolle und Runtime Rolle. Hier ist ein einfaches Beispiel:
Ihre Liste Rolle und Ihre Stufen:
Benutzer und Ihrer Statischen Rolle (Statische Rolle ist die Rolle, die Sie den Benutzern zugeordnet):
Zur Laufzeit generieren Sie eine Laufzeit Funktion mit der Statischen Rolle und die Rolle, die Ebenen, die Benutzer auf höherer Ebene der Rollen automatisch erhalten Sie die Rollen in die unteren Ebenen. So, nach der Berechnung, die Laufzeit, die Rollen für diesen Benutzer:
Dann können Sie einfach [Autorisieren(Roles="Viewer")], Benutzer mit höheren Berechtigungen (z.B. John, Sam) können den Zugriff auf Sie zu. Denn Sie müssen auch über die Viewer-Rolle zur Laufzeit.
Dem Punkt mit der Statischen Rolle und Laufzeit Rolle ist, die Statische Rolle macht die Zuordnung einfacher. Und Laufzeit die Rolle der Ressourcen-Autorisierung zu erleichtern.