Хорошо, поэтому я ищу небольшое руководство по архитектуре, моя команда получает возможность пересмотреть определенные решения с помощью новой функции, которую мы создаем, и я хотел посмотреть, что думает SO :-) Конечно, есть некоторые вещи, которые мы не меняем, поэтому решение должно соответствовать этой модели. А именно, у нас есть приложение ASP.NET, которое использует веб-службы, чтобы позволить пользователям выполнять действия в системе.
Проблема возникает потому, что, как и во многих системах, разные пользователи нуждаются в доступе к различным функциям. Некоторые роли имеют доступ к кнопке Y, а другие имеют доступ к кнопкам Y и B, в то время как другие по-прежнему имеют доступ только к B. В большинстве случаев, когда я это вижу, разработчики просто добавляли в оператор выражения if, чтобы разобраться с ними. состояние пользовательского интерфейса. Я опасаюсь, что если оставить этот флажок непроверенным, это станет неразрешимым беспорядком, потому что помимо размещения логики авторизации в графическом интерфейсе, ее необходимо поместить в веб-службы (которые вызываются через ajax), чтобы гарантировать, что только авторизованные пользователи будут вызывать определенные методы. .
поэтому мой вопрос к вам: как можно спроектировать систему, чтобы уменьшить случайные ad-hoc операторы тут и там, которые проверяют определенные роли, которые могут быть повторно использованы как в коде GUI / веб-формы, так и в веб-сервисе? код.
Просто для ясности, это веб-приложение ASP.NET, использующее веб-формы, и Script # для функциональности AJAX. Не позволяйте сценарию # избавить вас от ответа, он принципиально не отличается от asp.net ajax: -)