Tôi đang thực hiện một dự án trong WPF. Tôi có một yêu cầu để xác thực một người dùng và cung cấp accessibilty cho các mô-đun dựa trên vai trò. Tôi có một cách tốt hơn để đạt được điều này trong WPF.Xác thực và vai trò trong WPF
Trả lời
Nó sẽ phụ thuộc một phần vào mức độ bảo mật mà bạn cần mã.
Tuy nhiên, đối với tất cả các trường hợp sử dụng của bạn, hãy sử dụng mẫu Kiểu xem-View-ViewModel. Trong mỗi ViewModel, có lẽ tốt nhất được đặt trong một lớp cơ sở cho tất cả các lớp ViewModel của bạn, bao gồm một biến trạng thái trả về một chuỗi và tăng sự kiện PropertyChanged bất cứ khi nào trạng thái bảo mật thay đổi.
cơ sở trình bày của bạn cho mỗi lớp View trên giá trị của chuỗi đó, sau một mô hình tương tự như câu trả lời chấp nhận câu hỏi này SO:
https://stackoverflow.com/questions/3868164/
Câu trả lời mô tả làm thế nào để làm điều này với các giá trị boolean , nhưng bạn có thể sử dụng bất kỳ giá trị chuỗi nào khác "True" hoặc "False" nếu biến trạng thái ViewModel của bạn cần nhiều hơn hai trạng thái.
Tất cả mã .NET, bao gồm WPF, có thể dễ dàng được thiết kế ngược. Nếu mã của bạn cần an toàn hơn, đó là, nếu trường hợp sử dụng của bạn giả định rằng người dùng của bạn sẽ hack chương trình WPF của bạn, thì bạn sẽ muốn làm xáo trộn và/hoặc mã hóa phần lớn mã ViewModel, sử dụng các sản phẩm thương mại sẵn có như InishTech's SLPS hoặc Dotfuscator hay gì đó. Ngoài ra, bạn có thể sử dụng cùng một mẫu MVVM và viết một ứng dụng Silverlight, nhưng tôi không chắc liệu người dùng Silverlight có quyền truy cập vào các tệp nhị phân theo cách người dùng WPF trên máy tính để bàn hay không.
- 1. Xác thực vai trò đơn giản trong asp.net
- 2. Vai trò có sẵn với Xác thực Windows
- 3. Người dùng có vai trò là "quản trị" nhưng [Ủy quyền (Vai trò = "quản trị")] sẽ không xác thực
- 4. Vai trò EventBus trong GWT
- 5. Vai trò web và vai trò của nhân viên trong dịch vụ đám mây/Node.js
- 6. Chính xác "vai trò" trong Capistrano là gì?
- 7. (Ruby, Rails) Xác thực dựa trên vai trò và quản lý người dùng ...?
- 8. Xác thực không có vai trò trong web.xml trong JBoss AS 7
- 9. Trường hợp Azure và vai trò web
- 10. Khuôn khổ thực thể DbContext trong vai trò Web Azure
- 11. Mô hình và vai trò trong Qt5 và Qt 4.8
- 12. Cách tạo và đăng ký vai trò mới trong Symfony2
- 13. Vai trò/quyền mục?
- 14. Xác thực, Ủy quyền, Quản lý người dùng và vai trò và Bảo mật chung trong .NET
- 15. Tại sao xác thực dựa trên xác nhận quyền sở hữu thay vì xác thực dựa trên vai trò
- 16. Vai trò tùy chỉnh đơn giản cho xác thực cửa sổ trong asp. mạng lưới?
- 17. Sử dụng xác thực Vai trò Windows trong App.config với WCF
- 18. Azure và mẫu Vai trò Web MVC2
- 19. Vai trò ủy quyền và quyền
- 20. FOSUserBundle và ACL Vai trò kinh doanh
- 21. Vai trò và trường hợp Azure
- 22. Magento: nhận vai trò và người dùng
- 23. Vai trò của #ifdef và #ifndef
- 24. Làm cách nào để tạo vai trò/vai trò toàn cầu trong Sphinx?
- 25. libcore và vai trò của nó trong android là gì?
- 26. Ủy quyền và vai trò người dùng trong Oracle Apex?
- 27. Chỉ định vai trò gán vai trò cho người dùng trong MVC 4 qua hộp kiểm
- 28. Các vai trò Singleton trong Moose
- 29. sử dụng xác thực cửa sổ với các nhóm thư mục hoạt động làm vai trò
- 30. Drupal: gán vai trò trong user_save
Tôi chỉ muốn chuyển đổi chế độ hiển thị của các tùy chọn nhất định trong giao diện người dùng. – Novice
Sau đó, bạn nên ổn với cách tiếp cận gần như giống với câu hỏi được liên kết: Bạn sẽ xác định kiểu cho mỗi trạng thái xem và áp dụng kiểu với DataTrigger được ràng buộc với boolean ViewModel, có thể có tên là "Authenticated". Bạn có thể đặt mã xác minh thực tế trong trình thu thập ViewModel cho thuộc tính "Đã xác thực" đó. –