câu trả lời Kelsey là ngay trên nhãn hiệu, nhưng tôi muốn thêm một cái gì đó để thảo luận. Một tùy chọn khác là không thực sự có các tuyến "quản trị", nhưng thay vào đó yêu cầu các phiên được xác thực của quản trị viên để thực sự truy cập các url bị hạn chế.
Đây thường là cách mọi thứ được thực hiện trong các ứng dụng RESTful "truyền thống". Bộ điều khiển của bạn đại diện cho loại tài nguyên bạn đang thao tác, hành động là động từ và id là mã định danh duy nhất cho một thành viên cụ thể của tài nguyên đó.
Nói cách khác, thay vì có:
/content/list (for normal users)
/admin/content/add (for admins)
Bạn sẽ phải
/content/list (for everyone)
/content/add (for admin, but must be authenticated to work)
Thêm/admin/URL không thực sự thêm bất kỳ lợi ích hơn (ngoại trừ có lẽ bạn có thể viết logic bảo mật của bạn chỉ với một quy tắc duy nhất chống lại bất cứ điều gì dưới/admin), nhưng sự cân bằng là các tuyến đường phức tạp hơn và phá vỡ RESTful chuẩn. Phá vỡ các thực hành tiêu chuẩn không phải là một điều xấu, nhưng bạn nên xem xét rằng chúng là tiêu chuẩn vì một lý do, và trừ khi bạn có lợi ích cụ thể để phá vỡ chúng, bạn có thể xem xét tôn trọng chúng.
Cần lưu ý rằng trong cả hai kiểu URL bạn cần phải xác thực người dùng, nếu không thì bất kỳ ai cũng có thể sử dụng nó.
Trong ASP.NET MVC, bạn có thể hạn chế quyền truy cập vào các hành động (hoặc thậm chí toàn bộ bộ điều khiển) dựa trên cấp độ người dùng bằng cách sử dụng ActionFilters. Bằng cách trang trí các hành động chỉ dành cho quản trị viên của bạn với các bộ lọc này, bạn có thể đảm bảo chỉ những người dùng quản trị được xác thực mới có thể sử dụng chúng.
Đọc Scott Gu's mục nhập blog hoặc Rob Connery's post để biết thêm thông tin.
Sử dụng mọi thứ làm cho các trình điều khiển khác có thể truy cập được thông qua tiền tố 'admin/'. Người ta cũng có thể truy cập site/Home của bạn thông qua site/admin/Home của bạn. –