Tôi đang thêm ASP.NET MVC vào một ứng dụng WebForms hiện có. Trong thời gian này, tôi không quan tâm đến việc xác thực/đăng nhập, vì phần này được xử lý bởi mã hiện có (Xác thực biểu mẫu).Ủy quyền dựa trên giấy phép trong ASP.NET MVC3
Trong ứng dụng WebForms hiện có, chúng tôi có ủy quyền dựa trên giấy phép tùy chỉnh trên mỗi trang. Vì vậy, mỗi người dùng có một bộ quyền, liệt kê các trang mà anh ta được phép truy cập.
Bây giờ tôi cần phải quyết định làm thế nào tôi có thể sử dụng cùng một hệ thống cho phép để hạn chế quyền truy cập vào các bộ điều khiển và hành động MVC cụ thể.
Như tôi đã biết, đối với ASP.NET MVC có một tiêu chuẩn AuthorizeAttribute nơi tôi có thể chỉ định vai trò. Tôi cũng tìm thấy một số bài viết đề xuất chỉ định quyền thay vì vai trò - sau đó có thể làm điều gì đó như sau:
[CustomAuthorize(Roles = "View products, Edit products")]
Bằng cách mở rộng AuthorizeAttribute, tôi cũng có thể xác định cách lưu trữ và quyền truy cập.
Giải pháp này có thể chấp nhận được đối với tôi (mặc dù thay đổi ngữ nghĩa của vai trò có mùi một chút).
Nhưng trước khi cam kết với nó, tôi muốn xem những tùy chọn khác có. Và đó là nơi tôi đang mắc kẹt - Tôi đã không tìm thấy một cái nhìn toàn diện về các cách tiếp cận khác nhau về ủy quyền trong ASP.NET MVC. Tôi cũng muốn biết tất cả các khái niệm bảo mật (như Xác thực Mẫu, Nhà cung cấp Thành viên, Thuộc tính Cấp phép, IPrincipal, v.v.) có liên quan với nhau như thế nào và chúng được sử dụng như thế nào.
Điều này tương tự như những gì đã được thử tại đây: http://stackoverflow.com/questions/10338734/custom-security-scenario-in-asp-net-mvc/ – antijon
@antijon theo như tôi hiểu, nó tương tự như triển khai một AuthorizeAttribute tùy chỉnh. Nhưng tôi muốn tìm hiểu chi tiết hơn về các lựa chọn khác và ưu và khuyết điểm của họ. –