Стратегия безопасности пользователя Wpf

ФОН:

Я создаю приложение WPF (.NET 4.5 с MVVM-Light)

Я создал пользовательские роли в базе данных, которая поддерживает приложение WPF, где пользователям приложения WPF назначена роль (т.е.пользователь, менеджер, владелец, администратор)

ЧТО Я ХОЧУ:

Мой клиент хочет иметь возможность ограничивать то, что видят пользователи и что могут делать пользователи, исходя из их роли. Есть некоторые виды, которые будут видны всем пользователям, поэтому некоторые визуальные элементы (сетки, кнопки и т. Д.) Должны быть скрыты или отключены в зависимости от роли пользователя.

ЧТО У МЕНЯ ЕСТЬ:

Я создал IUserService, который вставляется в каждую модель представления. Роли, которые я создал, имеют поле, обозначающее их уровень безопасности (просто целое число от 1 до 5). Я хочу иметь возможность ограничить видимость визуальных элементов на основе этого числа.

Например, мой план состоит в том, чтобы связать видимость элемента с логическим свойством (используя конвертер boolToVisibility) в viewmodel (Level1, Level2 и т. Д.), И это свойство вернет true, если уровень пользователя соответствует или больше, чем свойство уровень.

МОИ ПРОБЛЕМЫ:

Меня беспокоит то, что это большая работа для реализации в каждой модели представления и на каждом визуальном элементе, который необходим. Кроме того, у меня уже есть некоторые визуальные элементы, на которые влияет другая бизнес-логика.

ВОПРОС:

Как эффективный способ ограничить способность пользователей «просматривать» визуальные элементы на основе стратегии роли пользователя?

Я готов начать эту работу, но я хотел бы услышать некоторые другие идеи от сообщества о том, как безопасность на основе ролей пользователя реализована в приложении WPF.

Ответы на вопрос(2)

Ваш ответ на вопрос