Nếu bạn muốn bảo vệ tài sản (tệp, hàng cơ sở dữ liệu, Thực thể miền, tài liệu, v.v.) thay vì tính năng của ứng dụng hoặc khả năng của người dùng , bảo mật dựa trên vai trò không phù hợp lắm.
Mô hình tốt hơn là sử dụng Danh sách kiểm soát truy cập (ACL) như bạn biết từ NTFS. Bạn gần như đã tự mình nói điều đó vì bạn cần chỉ định các quyền cụ thể trên từng đối tượng cho từng người dùng hoặc vai trò. Đó là những gì ACL làm.
Nếu bạn cần bảo vệ các đối tượng cuối cùng là các hàng trong SQL Server, bạn sẽ cần xác định các bảng tùy chỉnh cho ACL của mình, vì SQL Server không hỗ trợ các quyền cấp hàng.
Dựa trên dữ liệu trong các ACL đó, bạn phải triển khai các kiểm tra bảo mật cần thiết trong Cấu phần truy cập dữ liệu của mình.
Dưới đây là một số liên kết đến các câu trả lời SO có liên quan:
- Kiểm soát truy cập trong ASP.NET MVC tùy thuộc vào thông số đầu vào / lớp dịch vụ?
- Cơ chế tốt nhất để triển khai bảo mật chi tiết (tức là ủy quyền) trong ứng dụng ASP.NET MVC là gì?
- Làm cách nào để triển khai mã lời mời để chia sẻ tài nguyên với người dùng khác?