Пользовательские разрешения и представления asp.net mvc - PullRequest
1 голос
/ 13 февраля 2009

Похоже, есть 2 варианта работы с разрешениями безопасности для представлений в mvc:

  1. либо обработайте логику управления разрешениями в контроллере и направьте пользователя к соответствующему представлению ...
  2. Или реализовать некоторую форму безопасных расширений HtmlHelper, которые отображают (или нет) соответствующие поля формы / данные

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

поэтому мой вопрос: есть ли лучший способ?

1 Ответ

4 голосов
/ 13 февраля 2009

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

Важно помнить, что MVC - это шаблон, а не изречение. Там, где шаблон работает против вас, можно немного согнуть его. Аналогично, СУХОЙ - это принцип, а не закон. Если кажется, что лучше повторить небольшой код, чтобы лучше выполнить задачу, продолжайте и повторите это. Поймите, что вы создаете проблемы с обслуживанием для себя, но не позволяйте строгой приверженности принципу удерживать вас от "правильных действий".

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