Mọi người đang làm gì để xử lý bảo mật (truy xuất và sửa đổi) các bản ghi riêng lẻ trong một ứng dụng ASP.NET MVC? Ứng dụng này có một lớp dịch vụ/kinh doanh và một lớp truy cập dữ liệu hoàn toàn tách biệt với giao diện người dùng Web. Tôi đã sử dụng các nhà cung cấp thành viên và vai trò để xử lý xác thực và ủy quyền cho các khu vực/tính năng cụ thể trong ứng dụng của tôi, nhưng bây giờ tôi cần phải bảo mật các bản ghi riêng lẻ.Xử lý bảo mật mức kỷ lục/thực thể trong ứng dụng ASP.NET MVC
Ví dụ: giả sử Bob có thể tạo và chỉnh sửa các bản ghi FooBar của riêng mình. Tôi muốn đảm bảo rằng những người dùng khác không thể xem hoặc chỉnh sửa hồ sơ của Bob. Tôi muốn bảo vệ chống lại thao tác URL và/hoặc các lỗi lập trình. Chúng tôi cũng có thể muốn cho phép Bob chia sẻ FooBars của anh ấy với những người dùng khác, cho phép họ xem nhưng không chỉnh sửa hồ sơ của anh ấy.
Có một số cách tiếp cận tôi đã đưa ra:
- Làm kiểm tra an ninh trong lớp Data Access, trực tiếp trong việc thu hồi và sửa đổi các truy vấn.
- Kiểm tra bảo mật trong lớp Dịch vụ, thực hiện các truy vấn bảo mật bổ sung trước khi tiếp tục với logic nghiệp vụ.
- Tạo lớp Bảo mật tồn tại giữa giao diện người dùng và lớp Dịch vụ. Giao diện người dùng sẽ thực hiện tất cả các yêu cầu thông qua lớp Bảo mật.
- Sử dụng lập trình hướng-khía cạnh (AOP). Tạo các khía cạnh bảo mật và trang trí các phương thức lớp dịch vụ với các thuộc tính bảo mật.
Tôi đã thực hiện bảo mật trong lớp Truy cập dữ liệu (trong truy vấn) trong các dự án trước đó và nó luôn biến thành một mớ hỗn độn. Tôi muốn biết mọi người đang làm gì và bạn đang sử dụng những khuôn khổ nào để giúp bạn (các khuôn khổ AOP.)