respuesta de Kelsey es justo en la marca, pero quería añadir algo a la discusión. Otra opción es no tener rutas de "administrador" en absoluto, sino sesiones administrativas autenticadas para acceder realmente a las URL restringidas.
Así es a menudo como se hacen las cosas en las aplicaciones RESTful "tradicionales". Su controlador representa el tipo de recurso que está manipulando, la acción es el verbo y el ID es el identificador único para un miembro específico de ese recurso.
En otras palabras, en lugar de tener:
/content/list (for normal users)
/admin/content/add (for admins)
usted tendría
/content/list (for everyone)
/content/add (for admin, but must be authenticated to work)
Adición/admin/a la URL en realidad no se añada ningún benifits (excepto, quizás, que se puede escribir su lógica de seguridad con una sola regla en contra de cualquier cosa en/admin), pero la compensación es más complicada en las rutas y rompe el estándar RESTful. Romper las prácticas estándar no es malo en sí mismo, pero debe considerar que son estándares por una razón, y a menos que tenga beneficios específicos para romperlas, puede considerar adherirse a ellas.
Debe tenerse en cuenta que en ambos estilos de URL debe autenticar al usuario, de lo contrario, cualquiera podría usarlo.
En ASP.NET MVC, puede restringir el acceso a las acciones (o incluso a los controladores enteros) en función del nivel de usuario mediante ActionFilters. Al decorar sus acciones solo de administrador con estos filtros, puede asegurarse de que solo los usuarios administradores autentificados puedan usarlas.
Lee Scott Gu's entrada en el blog o Rob Connery's post para obtener más información.
Usar cosas hace que los otros controladores sean demasiado accesibles mediante el prefijo 'admin /'. Uno puede visitar su sitio/home a través de yoursite/admin/Home también. –