Сеть ASP .NET Core 3.0 работает в мультитенантной среде SaaS. Каждый клиент может работать либо на общем домене по умолчанию, либо на ноль / один / несколько необязательных пользовательских доменов. Эта конфигурация в основном хранится в базе данных SQL.
Должно быть два способа определения арендатора.
- Из пользовательского домена
- из пути запроса
для действия контроллера GetArticle(int tenantId, int articleId)
.
Промежуточное программное обеспечение маршрутизации должно понимать эти URL при определении действия контроллера для вызова. В идеале он должен также преобразовать пользовательский домен или часть клиента URL общего домена в соответствующий TenantId
, найденный в базе данных, передать его в действие контроллера в качестве параметра метода.
Промежуточное программное обеспечение маршрутизации также должносоздавать URL-адреса с помощью Url.Action()
и т. д., соблюдая при этом домен и арендатора из запроса.
Как этого добиться (или что-то лучшее с точки зрения передового опыта) в ASP.NET Core 3.0?