2010-01-08 36 views
7

Tôi có một ứng dụng có nội dung cần được thiết lập cho các quyền (tức là thành viên/không phải thành viên)Quyền Thiết kế

Tôi có vai trò/xác thực thiết lập tốt, đó không phải là vấn đề của tôi. Câu hỏi của tôi về cơ bản là hỏi cách tốt nhất để lưu trữ quyền cho từng đối tượng. Về cơ bản có vai trò "Khách" và "Thành viên" và các quyền "Từ chối" "Từ chối" đơn giản cho từng đối tượng.

Bất kỳ ý tưởng nào? Chương trình được viết bằng ASP.NET MVC sử dụng C#, LINQ, và MS-SQL 2005.

+0

tôi một chút nhầm lẫn ... các người hỏi làm thế nào để áp dụng những vai trò với bộ điều khiển, phương thức hành động và cuối cùng là các tính năng trên trang web của bạn hoặc bạn có hỏi cách bạn có thể áp dụng các vai trò đó để truy cập các đối tượng cụ thể không? –

+0

đối tượng nào chính xác là bạn muốn thêm quyền? – shenku

Trả lời

7

Nếu bạn muốn bảo vệ tài sản (tác phẩm, hàng cơ sở dữ liệu, tên miền Đối tượng, tài liệu, vv) thay vì ứng dụng các tính nă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) giống như bạn biết từ NTFS. Bạn gần như đã tự mình nói vì bạn cần gán các quyền cụ thể cho từng đối tượng cho mỗi người dùng hoặc vai trò. Đó là điều ACL làm.

Nếu bạn cần bảo vệ các đối tượng cuối cùng là hàng trong SQL Server, bạn sẽ cần xác định bảng tùy chỉnh cho ACL của bạn, vì SQL Server không hỗ trợ quyền cấp hàng.

Dựa trên dữ liệu trong các ACL đó, bạn phải triển khai kiểm tra bảo mật cần thiết trong Thành 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 liên quan SO: