mit einem Basis-controller für die gesamte asp.net MVC 4 Projekt
Ich bin am überlegen, mit einen Basis-controller für die gesamte MVC 4 Projekt, welches ich auf Arbeit bin. Ich habe widersprüchliche Ansichten über online-und nicht wirklich sicher, ob es gegen best practices oder ob es nur eine Frage der persönlichen Vorliebe.
Hier ist ein stackoverflow-post, der sagt dont do it
Hier ist ein Beitrag, der gezeigt hat, wie es zu tun, wie es keine schädlichen Wirkungen. Hier und hier wie gut Sie erklären seine Nutzung, wo niemand wirklich ist, darauf hinzuweisen, dass es ist eine schlechte Praxis oder führen könnte, um alle Probleme für die Zukunft.
Also, was ist wirklich die Aussicht auf ein paar Basis-Controller in einem MVC 4 Projekt? Gut? Schlecht?
Bearbeiten
Ich möchte auch darauf hinweisen, dass meine unmittelbare Ziel für die Verwendung einer Basis-controller ist so, dass ich die Genehmigung erfolgt in einem controller und so, dass alle Controller benötigen nicht die Autorisierung Attribut. Ich erstelle separate Basis-Controller für jede Rolle. Da die Rollen werden sich nie ändern ich werde nie brauchen, um einen anderen base-controller für eine andere Rolle. Was hältst du von dieser Weg geht über die Gestaltung der Controller?
Vielen Dank für Ihre Zeit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Benutzt habe ich ein Basis-controller vor, wenn es um Dinge wie das überladen des
User
AUFTRAGGEBER (siehe hier für eine alte Frage von mir Beschreibung der Idee: Ist diese Benutzerdefinierte Prinzipal in Basis-Controller ASP.NET MVC-3 furchtbar ineffizient?).Ganz ehrlich, ich konnte nicht denken, einen besseren Weg, dies zu tun, so fühle ich mich, dass in dieser Art von Szenario mit einem Basis-controller kann eine gute Sache sein.
Ich würde wahrscheinlich nicht anders Basis-Controller für verschiedene Berechtigungsrollen aber da ist es ziemlich einfach (und weniger code), nur um zu dekorieren Sie den controller mit
[Authorize(Roles="whatever")]
und es wird leichter sein, um zu sehen, was genau passiert ist.Könnte es sinnvoll sein, eine benutzerdefinierte AuthorizeAttribute.
AuthorizateAttribute
ist wohl besser (siehe link in der Antwort bearbeitet).IMHO, was die post auf den Sie verweisen, sagt, ist absolut wahr, aber das ist kein Grund, nicht mit einem Basis-controller. In der Tat verwende ich eine base-controller in einigen meiner ASP.NET MVC-Anwendungen, weil der Ware.
Ist dies nicht mehr empfehlenswert:
Mit einer base controller anwenden [Genehmigen] - Attribut einmal ist eine gängige Praxis, und ich sehe nicht, nichts falsch auf.
Seit MVC3 Sie können sich registrieren, global action Filter wie dieser:
GlobalFilters.Filters.Add(new MyAuthorizeAttribute());