Приложение .NET Core 3.1 с поддержкой нескольких баз данных SQL Server 2019 Express с основной базой данных для аутентификации
Я создаю веб-приложение с.NET Core 3.1 и Angular 9. Я хотел бы знать, можно ли использовать внутренний механизм аутентификации / авторизации.NET Core для подключения к базе данных "авторизации" и на основе предоставленных учетных данных пользователем, подключитесь к базе данных, предназначенной для использования этим пользователем.
Схема выглядит следующим образом: одна база данных, содержащая, какие пользователи могут подключаться к какой базе данных.
Множественные структурно идентичные базы данных, к которым пользователи могут получить доступ в зависимости от их учетных данных.
Это необходимо для разделения данных по нескольким базам данных, поскольку каждая база данных будет содержать разные данные, но с одинаковой структурой. Что-то вроде следующего рисунка.
В качестве СУБД будет использоваться SQL Server 2019 Express. Потребует ли этот подход каких-либо изменений в механизме по умолчанию, который.NET Core 3.1 использует для аутентификации пользователей? Следует ли мне рассмотреть другой подход, основанный на требовании?
Заранее благодарим вас за помощь и совет.
1 ответ
Вы можете добиться этого, используя ядро Entityframework и несколько DBContext, а также передав другую строку подключения. Вы можете выполнить аутентификацию пользователя с помощью AuthDBContext, который подключается к auth db, а затем в зависимости от условия использовать другой dbcontext.
Вы можете добиться этого, используя другой orm, например Dapper, передав другую строку подключения другому объекту SqlConnection в зависимости от вашего сценария.