2011-01-19 13 views
6

Robię projekt w WPF. Mam wymóg uwierzytelnienia użytkownika i zapewnienia dostępu do modułów na podstawie roli. Czy mam lepszy sposób osiągnięcia tego w WPF.Uwierzytelnianie i role w WPF

Odpowiedz

2

Będzie to częściowo zależało od tego, jak bezpieczny będzie potrzebny kod.

We wszystkich przypadkach użycia należy użyć wzorca Model widoku-ViewModel. W każdym ViewModelu, być może najlepiej umieszczonym w klasie bazowej dla wszystkich twoich klas ViewModel, dołącz zmienną stanową, która zwraca ciąg i podnosi zdarzenie PropertyChanged za każdym razem, gdy zmienia się stan zabezpieczeń.

Podstawa prezentacji dla każdego widoku klasy na wartość tego łańcucha, po wzór podobny do przyjętego odpowiedzi na to SO pytanie:

https://stackoverflow.com/questions/3868164/

Odpowiedź opisuje jak to zrobić z wartości logicznych , ale możesz użyć dowolnej wartości ciągu innego niż "True" lub "False", jeśli twoja zmienna stanu ViewModel potrzebuje więcej niż dwóch stanów.

Cały kod .NET, w tym WPF, można w prosty sposób odwrócić. Jeśli twój kod musi być bardziej bezpieczny, to znaczy, jeśli twój przypadek użycia zakłada, że ​​twoi użytkownicy zhackują twój program WPF, będziesz chciał zaciemnić i/lub zaszyfrować znaczną część kodu ViewModel, używając dostępnych na rynku produktów takich jak InishTech SLPS lub Dotfuscator lub cokolwiek innego.

Alternatywnie można użyć tego samego wzorca MVVM i napisać aplikację Silverlight, ale nie jestem pewien, czy użytkownik Silverlight ma dostęp do plików binarnych w taki sam sposób, w jaki robiłby to użytkownik pulpitu WPF.

+0

Po prostu chcę przełączyć widoczność niektórych opcji w interfejsie użytkownika. – Novice

+0

Następnie powinieneś być w porządku z podejściem niemal identycznym z podejściem w połączonym pytaniu: zdefiniujesz styl dla każdego stanu przeglądania i zastosujesz styl z DataTriggerem powiązanym z boolean ViewModel, być może o nazwie "Uwierzytelniony". Możesz umieścić aktualny kod weryfikacyjny w pobierającym ViewModel dla tej "Uwierzytelnionej" właściwości. –

Powiązane problemy