2011-01-19 41 views
6

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

2

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.

+0

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

+0

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" đó. –

Các vấn đề liên quan