2009-02-27 8 views
25

Tôi đã tạo Nhà cung cấp vai trò của riêng mình vì tôi đã tìm thấy vai trò mà ASP.Net cung cấp quá cồng kềnh về mặt bảng trong cơ sở dữ liệu. Tôi thấy việc triển khai RoleProvider tùy chỉnh khá dễ dàng.Làm cách nào để cho phép nhiều vai trò xem một trang khi sử dụng RoleProvider tùy chỉnh trong ASP.Net

Vấn đề duy nhất của tôi là ngay bây giờ tôi không thể có nhiều vai trò cho một trang. Tôi thấy một nơi nào đó ở trên cùng của lớp học của bạn, bạn cần phải "anotate nó" với một số mã bảo mật. Đây là những gì tôi có

[PrincipalPermission(SecurityAction.Demand, Role="Admin")] 

Nếu tôi cố gắng bao gồm nhiều vai trò bằng cách sử dụng danh sách được phân tách bằng dấu phẩy, tôi gặp lỗi. Nếu tôi cố gắng chỉ định nhiều khóa vai trò thì tôi cũng gặp lỗi. Do i Cần phải xác định nhiều PrinicipalPermissions bởi bất kỳ cơ hội?

Tôi có rất ít kinh nghiệm về quản lý vai trò của ASP.Net. Ai đó có thể chỉ cho tôi đúng hướng hay ở một số tài liệu hay.

Trả lời

67

bạn có thể thêm thuộc tính PrinicpalPermission nhiều lần.

[PrincipalPermission(SecurityAction.Demand, Role="Admin")] 
[PrincipalPermission(SecurityAction.Demand, Role="AnotherRole")] 
+47

Đối với bất cứ ai tự hỏi, đây là cho nhiều "OR" vai trò, không phải "AND". – Ted

+0

@Ted +1, nhận xét hay, điều này rất quan trọng! –

+3

Sau đó, bạn có thể tham khảo cách thực hiện 'VÀ' không? Tôi thấy các phương pháp 'giao nhau' và 'công đoàn' khá khó hiểu để đọc. –

-3
[PrincipalPermission(SecurityAction.Demand, Role="Admin,Another RoleName")]