ASP.NET Security-Rollen UND-Berechtigungen
Bin ich wohl mit dem ASP.NET Sicherheits-Modell, wobei man mit erlauben/verweigern von Zugriff für Benutzer im web.config basiert auf dem, was Rollen, die Sie in z.B.
<system.web>
<authorization>
<allow roles = "Admin" />
</authorization>
</system.web>
Jedoch, was ich tun möchten ist, geben Sie den admin-Benutzer eine Reihe von Berechtigungen, die dann überprüft werden, beispielsweise ein Admin-Benutzer mit Berechtigungen wie "drucken", "löschen Dokument"
Ist diese Art der Sache möglich out of the box oder müsste ich nach unten gehen eine benutzerdefinierte route?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Azman, wie beschrieben, in in diesem MSDN-Artikel.
Aber es gibt eine Reihe von Dingen, die ich nicht gerne über Azman, also rollte ich meinen eigenen als Ergänzung zu den RoleProvider (zusätzliche Tabellen, APIs und admin-tools, die das verwalten der Zuordnung von Berechtigungen zu Rollen).
Meine benutzerdefinierte Implementierung ist sehr einfach:
M-N-Beziehung zwischen Rollen und Berechtigungen.
Einer API "HasPermission", dass die tests, wenn ein AUFTRAGGEBER hat eine bestimmte Berechtigung. Diese einfach durchläuft alle Rollen und prüft, ob die Rolle über die Berechtigung gegeben. Die mapping-Berechtigung-Rollen-Cache mit der ASP.NET cache aus performance-Gründen.
Er nicht da out of the box; aber wenn Sie wollte mehr sein als Granulat, warum nicht das granulare Rollen wie "CanPrint", "CanDelete" eher als breiter wie "Admin"?
Wenn Sie wollen, ein container-Typ Szenario, wie Sie angeben, Ihre Kommentare konnte Sie setup eine benutzerdefinierte IPrincipal - wo, nach der Authentifizierung, und mit jeder neuen Anfrage, die Sie Blick auf die Rolle des Benutzers Mitgliedschaft ("Admin", "Public", etc.) und dann überschreiben IsInRole auf Ihre IPrincipal. Ein Beispiel finden Sie hier
fand ich diese Artikel, gibt ein schönes Beispiel
Kehren Sie könnten BERECHTIGUNGEN anstelle der ROLLEN in Ihrem RoleProvider.
Dann erstellen Sie Ihre admin-Seiten hinzufügen {gewährt/verweigert} den Rollen Berechtigungen zu, und der Kurs von Benutzern zu Rollen.
Ja, das ist möglich. Erstellen Sie die Rollen, die Sie möchten, fügen Sie die Benutzer zu den Rollen, und dann einfach überprüfen Sie User."IsInRole" in Ihrem code, wo Sie die Aktion durchführen, die erfordert, dass Rolle.
Werfen Sie einen Blick auf die Rollen und die Mitgliedschaft in den Klassen im System.Web.Sicherheit