Как вы реализуете роли и безопасность в своих проектах С# Domain Driven Design? У нас есть некоторые дискуссии о том, следует ли это реализовать вызывающему приложению (ASP.NET MVC) или в самой модели домена (моделирование объектов и служб). Некоторые утверждают, что это должно быть на самом веб-сайте, так как там, где аутентификация уже существует. Но это означает, что вам необходимо повторно внедрять защиту каждый раз, когда вы интегрируетесь с основными бизнес-системами.
В качестве примера: Администратор должен иметь возможность выполнять практически любые действия в системе, такие как редактирование и удаление записей (т.е. они могут удалить пользовательский порядок). Пользователь, с другой стороны, должен иметь возможность редактировать и удалять свои собственные записи (т.е. Они могут добавлять/удалять элементы из своей корзины покупок).
Кстати, вот хороший тезис по теме, который охватывает 7 различных сценариев DDD и безопасности:
Безопасность в доменном дизайне
- Глава 4 Сценарии проектирования служб безопасности
- 4.1 Сценарий 1: Служба безопасности как регулярная служба
- 4.2 Сценарий 2. Безопасность, встроенная в пользовательский интерфейс
- 4.3 Сценарий 3: служба безопасности, инкапсулирующая модель домена
- 4.4 Сценарий 4: Служба безопасности как шлюз для пользовательского интерфейса
- 4.5 Сценарий 5: Служба безопасности в качестве адаптера для пользовательского интерфейса
- 4.6 Сценарий 6: Служба безопасности, интегрированная АОП с адаптерами
- 4.7 Сценарий 7: Служба безопасности, интегрированная с AOP
Я бы лично склонялся к AOP, используя PostSharp, но не делал много с ним раньше, я не решаюсь совершить прыжок.