Как мне представить различные уровни продукта и доступ к функциям в ASP.NET MVC3? - PullRequest
2 голосов
/ 18 апреля 2011

Прежде чем я отправлюсь в путь изучения ASP.NET MVC3, я хотел попытаться получить рекомендации по тому, что, как я знаю, я столкнусь.Если у меня есть приложение с разными уровнями пользователя / продукта, которое приводит к тому, что разные пользователи могут выполнять разные функции (например, пользователь подписался на базовый уровень продукта, поэтому они не могут загружать аудио, в то время как пользователи с более высокими "уровнями" могут)Существуют ли рекомендации относительно того, как я могу справиться с этим чисто.

Пример 1. У модели или контроллера есть X и разные Y или Z для каждого уровня продукта.

Пример 2. У встроенной разметкив представлении, отображающем функцию, доступную для ролей «верхнего уровня», на основе результата вспомогательного метода.

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

Спасибо, любые предложения будут оценены.

1 Ответ

1 голос
/ 18 апреля 2011

Это определенно должно быть в обоих местах.Например, если ваш бесплатный уровень не позволяет настраивать домены, в то время как платные - нет, простого удаления input для доменного имени будет недостаточно: пользователь может вручную обработать запрос POST и включить пропущенный * 1002.* значение.Следовательно, вам придется проверять и функции уровня в контроллере.

Что касается того, где и как задать эти ограничения уровня, у меня тоже есть эта проблема на данный момент.Я придумал простой XML-файл, в котором я определяю возможности уровня:

<tiers>
  <defaults allow-custom-domain="false" allow-branding="false">
  <tier name="free" upload-limit="10MB" />
  <tier name="platinum" allow-custom-domain="true" allow-branding="true" upload-limit="2GB" />
</tiers>

И затем класс simpe C # для инкапсуляции доступа к этой спецификации, и все готово.

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