Giống như tất cả các ứng dụng Line-Of-Business, một ứng dụng có thể có nhiều Users
với một số Roles
được gán cho chúng. Gần đây chúng tôi đã chuyển sang Kiến trúc MVVM của WPF và tìm cách tốt nhất để gán vai trò cho mỗi người dùng đã đăng nhập. Có nhiều thuật ngữ nổi trên internet như Authentication, RoleManager, LoginService vv, nhưng tôi không chắc chắn nên làm việc với.Gán Vai trò cho Người dùng Ứng dụng
Đây là những gì chúng ta có:
Một ứng dụng doanh nghiệp nhỏ (Với 20 hình thức), được phát triển trong một dự án duy nhất. Chúng tôi sử dụng kiến trúc MVVM
, LINQ-to-SQL
dưới dạng DataAccess và Model
, với Repository pattern
và Unit Of Work
.
gì chúng ta muốn:
Có nhiều hình thức khác nhau và mỗi hình thức có chèn, cập nhật, xóa, in vv hoạt động. Điều chúng tôi muốn là hạn chế người dùng đã đăng nhập theo vai trò của anh ấy - với nhiệm vụ anh ấy có thể thực hiện. ví dụ: ví dụ Quản trị viên được tự do làm "mọi thứ" với ứng dụng, trong khi một số người dùng khác có thể không được phép xem một số biểu mẫu hoặc thực hiện một số thao tác (cập nhật hoặc xóa).
Vậy làm cách nào chúng ta có thể đạt được điều này; loại dịch vụ nào có thể được sử dụng để thực hiện cơ chế hoàn chỉnh này bằng cách sử dụng kiến trúc MVVM trong một ứng dụng Desktop LOB. Một thuật ngữ kỹ thuật hoặc liên kết hướng dẫn sẽ hữu ích.
Tôi hy vọng tôi rõ ràng và cảm ơn bạn rất nhiều trước.
Chỉnh sửa: Tôi đã đi qua nhiều diễn đàn và bài viết xung quanh, nhưng tất cả đều tập trung vào ASP.NET. Vẫn không thể tìm thấy một triển khai cụ thể để gán vai trò trong WPF. Và các nguồn trên ASP.NET không tuân thủ tốt với WPF.
MVVM gì khuôn khổ bạn đã sử dụng hoặc bạn đã cuộn của riêng bạn? –
Chúng tôi có cùng một vấn đề. Hầu hết các quyền đều được mã hóa cứng. Chúng tôi đã lên kế hoạch thực hiện ACL chính thức. Đồng nghiệp của tôi cung cấp Dịch vụ Vai trò WCF (http://msdn.microsoft.com/en-us/library/bb386424(v=vs.100).aspx) làm cơ sở hạ tầng sẵn sàng. Nhưng chúng tôi vẫn không chắc chắn về cách tốt nhất để áp dụng quyền trong mô hình xem vì chúng tôi muốn tránh mã hóa cứng càng nhiều càng tốt. Chúng tôi cũng quyết định xem Prism. Chúng tôi nghi ngờ nó có chứa các chức năng cần thiết. –
Nhân tiện, bạn đã bao giờ xem xét sử dụng AOP cho tác vụ này chưa? http://izlooite.blogspot.ru/2010/06/aspect-oriented-programming.html http://stackoverflow.com/questions/325558/aspect-oriented-programming-examples http: //www.sharpcrafters .com/ Tuyên bố từ chối trách nhiệm: Tôi mới làm quen với phương pháp này và hầu như không biết gì về nó. Nhưng Code Contacts cũng giống nhau nên tôi nghĩ nó có thể giúp ích. –