Strategia bezpieczeństwa użytkownika Wpf

TŁO:

Tworzę aplikację WPF (.NET 4.5 z MVVM-Light)

Stworzyłem role użytkowników w bazie danych, która wspiera aplikację WPF, w której użytkownicy aplikacji WPF mają przypisaną rolę (tj.użytkownik, menedżer, właściciel, admin)

CZEGO CHCĘ:

Mój klient chce mieć możliwość ograniczenia tego, co widzą użytkownicy i co użytkownicy mogą zrobić na podstawie ich roli. Istnieje kilka widoków, które będą widoczne dla wszystkich użytkowników, dlatego niektóre elementy wizualne (siatki, przyciski itp.) Powinny być ukryte lub wyłączone w zależności od roli użytkowników.

CO JA MAM:

Stworzyłem usługę IUserService, która jest wstrzykiwana do każdego modelu widoku. Role, które stworzyłem, mają pole, które oznacza ich poziom bezpieczeństwa (po prostu liczba całkowita od 1 do 5). Chcę być w stanie ograniczyć widoczność elementów wizualnych na podstawie tego numeru.

Na przykład, moim planem jest powiązanie widoczności elementu z właściwością boolowską (za pomocą konwertera boolToVisibility) w widoku viewmodel (Level1, Level2 itp.), A ta właściwość zwróciłaby wartość true, jeśli poziom użytkowników pasuje lub jest większy niż właściwość poziom.

MOJE TROSKI:

Obawiam się, że jest to dużo pracy do wykonania w każdym modelu widoku i na każdym potrzebnym elemencie wizualnym. Ponadto mam już pewne elementy wizualne, na które wpływa inna logika biznesowa.

PYTANIE:

Jaki jest skuteczny sposób ograniczenia użytkownikom możliwości „przeglądania” elementów wizualnych w oparciu o strategię roli użytkownika?

Jestem gotowy rozpocząć tę pracę, ale chciałbym usłyszeć od innych pomysłów społeczności na temat implementacji zabezpieczeń opartych na rolach użytkowników w aplikacji WPF.

questionAnswers(2)

yourAnswerToTheQuestion