MVVM и ролевая безопасность - PullRequest
       4

MVVM и ролевая безопасность

4 голосов
/ 05 февраля 2011

У меня есть приложение silverlight (MVVM), представление которого будет использоваться несколькими ролями в приложении. Доступность определенных элементов управления пользовательского интерфейса в представлении зависит от роли пользователя.Как это должно управляться в модели представления?Существуют ли какие-либо шаблоны объектов, которые я должен рассмотреть?

Любые идеи / рекомендации будут с благодарностью.

Ответы [ 3 ]

3 голосов
/ 05 февраля 2011

Первая идея, которая приходит на ум, - это иметь свойства в вашей ViewModel, которые соответствуют тому, имеет ли текущий пользователь возможность выполнять определенные операции.Например:

public bool CanChangeDisplayName {
    get {
        bool result = SomeMechanismToDetermineUsersAbilityToPerformAction();
        return result;
    }
}

Затем вы можете привязать свойство IsEnabled (или IsReadOnly или Visibility) к соответствующим элементам управления в представлении этого свойства.Как:

<TextBox IsReadOnly="{Binding CanChangeDisplayName}" Text="{Binding DisplayName}"/>

Надеюсь, это поможет!

1 голос
/ 04 апреля 2011
0 голосов
/ 05 февраля 2011

Части представления, которые являются специфичными для роли, вероятно, находятся в каком-то контейнере (grid, stackpanel, tabitem и т. Д.), И если это так, то я думаю, что ваше решение будет зависеть от привязки, установленной для свойства Visibility.

Вы бы создали статический ресурс области приложения, который бы облегчил вызов IsInRole для текущего пользователя.В вашей привязке вы должны будете сослаться на конвертер (чтобы перейти от bool к видимости), и именно там вы можете передать имя роли, для которой вы тестируете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...