Wie kann ich den Zugriff einschränken auf bestimmte Ansichten und Handlungen in MVC 5?
Habe ich drei Modelle mit dem Namen Kategorie, Unterkategorie und Service. Dann, für jede von Ihnen erstellte ich einen controller mit Entity-Framework, das schafft auch Ansichten für Sie. So, für jeden von Ihnen habe ich separate Erstellen, Löschen, Bearbeiten, Details und Index Ansichten. Der Punkt ist, dass ich auch noch eine Eigenschaft, um meine ApplicationUser Klasse, die überprüft, ob ein user admin ist oder nicht. Nämlich, ich habe dieses Eigenschaft:
public bool IsAdmin { get; set; }
So, der Punkt ist, dass ich möchte, um zu überprüfen, ob der Benutzer admin ist oder nicht, und entsprechend handeln. Wenn, user ist admin, ich will ihn/Sie in der Lage sein, diese Aussicht, und einfach manipulieren von Daten (mit den Reglern) durch diese Ansichten. Aber, wenn er/Sie ist kein admin, ich möchte, um eine Nachricht anzuzeigen, dass er/Sie nicht die Berechtigung zum ansehen dieser Seiten und ändern Sie die Daten. Wie kann ich es erreichen, in MVC? Ist es möglich?
InformationsquelleAutor | 2014-08-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, zunächst wirst du über dieses falsch. Während Sie das erreichen, was Sie wollen mit einer Eigenschaft, die auf Ihrem Nutzer-Klasse, wirst du grundsätzlich zu re-implementieren, was MVC und Identität bereits Ihnen.
Stattdessen führt Sie weiter hinunter in den Kaninchenbau-ich werde ziehen Sie zurück. Zuerst "admin" - status eine Rolle spielen sollen. Wenn ein Benutzer Administrator ist, geben Sie Ihnen einfach eine Rolle "Admin" oder "Administrator" oder was auch immer Sie es nennen wollen.
Dann im Controller/Aktionen, die Sie verwenden können, die
Authorize
Attribut, und geben Sie eine Liste der zulässigen Rollen. Zum Beispiel, die folgenden beschränken würden, die gesamte Steuerung nur diejenigen, die in einer "Admin" - Rolle:Wenn es eine bestimmte Aktion in dem controller, dass jeder sollte in der Lage sein Zugang, angemeldet oder nicht, können Sie immer noch schützen die gesamte Steuerung, sondern nutzen
AllowAnonymous
auf die Aktion in Frage:Können Sie auch fügen Sie einfach die
Authorize
Attribut direkt auf Ihre Aktion(en):Genossen diese schöne Antwort.
Liebte dieses schöne Antwort.
InformationsquelleAutor Chris Pratt