ASP.NET MVC Autorisieren Benutzer mit vielen Rollen
Ich brauche zu ermächtigen, einen Controller in meiner ASP.NET MVC-Anwendung für Benutzer, die zwei Rollen.
Ich bin mit Autorisierung Attribut wie diese:
[Autorisieren(Roles = "Producer, Editor")]
Aber dies ermöglicht Produzenten und Redakteure auf den controller. Ich möchte nur, um Benutzern zu ermöglichen, müssen sowohl die Rollen, nicht nur einer von Ihnen.
Wie könnte ich erreichen?
möglich, Duplikat der Mit MVC ist AuthorizeAttribute mit mehreren Gruppen von Rollen?
Nur so wissen Sie, der Grund, warum dies passiert ist, denn Sie haben einen Designfehler. Ich bin mir nicht sicher über Ihren Zusammenhang, aber denken Sie sorgfältig. Es gibt einige Maßnahmen, die ergriffen werden können. Sie wollen, dass die Aktion nur genommen werden, von jemandem, der sowohl Produzent und Redakteur. Ich kann mir nicht vorstellen, was das ist. Was ich empfehlen Sie tun, ist eine neue Besondere Rolle (Administrator?) oder wenn dies scheint dumm, dann würde ich gerne wissen, der Kontext (Was ist die Aktion, die Sie versuchen zu erreichen?)
Nur so wissen Sie, der Grund, warum dies passiert ist, denn Sie haben einen Designfehler. Ich bin mir nicht sicher über Ihren Zusammenhang, aber denken Sie sorgfältig. Es gibt einige Maßnahmen, die ergriffen werden können. Sie wollen, dass die Aktion nur genommen werden, von jemandem, der sowohl Produzent und Redakteur. Ich kann mir nicht vorstellen, was das ist. Was ich empfehlen Sie tun, ist eine neue Besondere Rolle (Administrator?) oder wenn dies scheint dumm, dann würde ich gerne wissen, der Kontext (Was ist die Aktion, die Sie versuchen zu erreichen?)
InformationsquelleAutor Herno | 2014-07-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie die Frage besagt, wenn mehrere Rollen sind in einem single
Authorize()
rufen Sie angewendet werden, so dass, wenn der Benutzer gehört zu alle der die Rollen aufgelistet, die Sie für die Zugriff gewährt wird; wie eine logischeOR
Betreiber.Alternativ, um die Wirkung zu erreichen, eine logische
AND
Betreiber, können Sie dieAuthorize
Attribut mehrfach. ZB..Für das obige Beispiel, das action-Körper ist nur für Benutzer, die gehören zu den
Producer
und dieEditor
Rollen.Rudi weist in den Kommentaren dieses können Sie erstellen, die einige Recht komplexe Regeln für den Zugang, ohne bei der Implementierung einer benutzerdefinierten
AuthorizeAttribute
. Zum Beispiel in dem folgenden code können Benutzer die Aktion auszuführen, wenn Sie beides: a) in derEnabled
Rolle und b) in derEditor
oderAdmin
Rollen.Ich bin mir nicht sicher, welche version brachte diese in aber es funktioniert mindestens in MVC 4 und 5.
[Authorize(Roles = "EitherThis,OrThis")][Authorize(Roles="ButAlwaysThis")]
InformationsquelleAutor Molomby
Sollten Sie Ihre benutzerdefinierte
AuthorizeAttribute
DEMO :
InformationsquelleAutor Kosmog