Ich benutze Rollenmanager und Windows-Authentifizierung für mein asp.net mvc-Projekt Wir haben 2 Rollen, die Viewer und Editoren sind.Asp.net MVC Rollenmanager
<authentication mode="Windows" />
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
<providers>
<clear />
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
Editor die gesamte Anwendung zugreifen können, aber Viewer kann nur Zugriff auf zwei Aktionen
Ich versuchte zunächst Autorisieren Attribut für Basis-Controller zu setzen, die Editor nur erlauben, alles zuzugreifen:
[Authorize(Roles = "Editors")]
public class BaseController : Controller
und Fügen Sie dann den beiden Aktionen Autorisierungsattribut hinzu:
[Authorize(Roles = "Viewers,Editors")]
public ActionResult Report(PaymentsUnallocatedAndQueriedModel model)
funktioniert nicht, der Viewer kann nicht auf Aktionen zugreifen, die jetzt sinnvoll sind.
Ich glaube, es ist keine gute Idee, Autorize-Attribut am Anfang jeder Aktion zu wiederholen.
Könnten Sie mir bitte sagen, ob es eine bessere Lösung für diese
ist
Danke für deine Antwort, hatte gehofft, dass ich nicht auf der Oberseite jeder Aktion autorisieren zu wiederholen, weil Redakteure alle Aktionen zugreifen können, aber es scheint, dass es – Elham
@Elham keine andere Möglichkeit sind: Sie könnten immer an dieser SO aussehen hinterfragen und implementieren Sie ein Attribut verweigern. Dies scheint eine Menge Arbeit zu sein, nur weil Sie kein Attribut für eine Methode eingeben möchten. http://stackoverflow.com/questions/4011458/mvc-authorize-attribute-deny –