Kelsey Antwort ist direkt auf der Marke, aber ich wollte etwas zur Diskussion hinzuzufügen. Eine andere Option besteht darin, überhaupt keine "Admin" -Routen zu haben, sondern stattdessen Admin-authentifizierte Sitzungen, um tatsächlich auf die eingeschränkten URLs zuzugreifen.
Dies ist oft, wie Dinge in "traditionellen" RESTful-Anwendungen getan werden. Ihr Controller stellt den Typ der Ressource dar, die Sie bearbeiten, die Aktion ist das Verb und die ID ist der eindeutige Bezeichner für ein bestimmtes Mitglied dieser Ressource.
Mit anderen Worten, statt mit:
/content/list (for normal users)
/admin/content/add (for admins)
würden Sie haben
/content/list (for everyone)
/content/add (for admin, but must be authenticated to work)
Hinzufügen/admin/zur URL hinzufügen nicht wirklich keine benifits (außer vielleicht, dass Sie schreiben können Ihre Sicherheitslogik mit nur einer einzigen Regel gegen alles unter/admin), aber die Abwägung ist kompliziertere Routen und bricht den Standard RESTful. Das Brechen von Standardpraktiken ist an sich keine schlechte Sache, aber Sie sollten in Betracht ziehen, dass sie aus einem bestimmten Grund Standard sind, und wenn Sie keine spezifischen Vorteile dafür haben, diese zu brechen, könnten Sie in Erwägung ziehen, sich an sie zu halten.
Es sollte beachtet werden, dass in beiden URL-Stilen Sie den Benutzer authentifizieren müssen, sonst könnte jeder es verwenden.
In ASP.NET MVC können Sie den Zugriff auf Aktionen (oder sogar ganze Controller) basierend auf Benutzerebene mithilfe von ActionFilters einschränken. Indem Sie Ihre admin-on-Aktionen mit diesen Filtern dekorieren, können Sie sicherstellen, dass nur authentifizierte administrative Benutzer sie verwenden können.
Lesen Sie Scott Gu's Blog-Eintrag oder Rob Connery's post für weitere Informationen.
Durch die Verwendung von Dingen sind die anderen Controller durch Voranstellen von 'admin /' zu erreichen. Sie können Ihre Homepage besuchen/Home über Ihre Homepage/admin/Home auch. –