Как: требуется валидатор на основе роли пользователя ASP.Net MVC 3 - PullRequest
2 голосов
/ 24 декабря 2010

У меня есть форма, в которой у меня есть поле «Реальная стоимость», я хочу настроить его внешний вид и проверить, нужно ли его проверять на основе роли пользователя.

, чтобы быть более понятным, скажем, клиент хочет показатьего поле на странице формы или сведений, а также сделать его редактируемым для пользователей в ролях "Старший менеджер по продажам", но не для других ролей, так что, может, кто-нибудь подскажет мне, как лучше всего?

Должен ли я написать пользовательскую обязательную проверку, основанную на роли пользователя, и если да, то можете ли вы предоставить правильную ее реализацию?

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

Надеюсь, я был достаточно ясен

Ответы [ 3 ]

1 голос
/ 25 декабря 2010

Чтобы расширить @Wyatt, вам нужно принять все эти решения на уровне модели, а затем заполнить «View Model» всеми ответами, которые затем можно использовать в представлении для улучшения взаимодействия с пользователем.

В ViewModel для этой формы есть свойство IsRealCostEditable, которое будет установлено вашим слоем службы / модели путем проверки роли пользователя. Теперь вы можете легко настроить интерфейс для этого поля.

1 голос
/ 12 февраля 2013

Вы можете создавать дубликаты страниц, и одна страница может содержать модель представления, которая ничего не меняет на странице ... И у вас может быть кнопка РЕДАКТИРОВАТЬ, которая перенаправляет на редактируемую страницу. Сделайте эту страницу защищенной аутентификацией. ПОЭТОМУ вам будет предложено подтвердить свою роль, прежде чем вы сможете изменить ее

ПРОЧИЕ ... ваш ViewModel не может принимать решения, он находится на уровне обслуживания.

1 голос
/ 24 декабря 2010

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

...