Разделение DomainDbContext от IdentityDbContext - PullRequest
0 голосов
/ 30 марта 2020

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

Теперь я подошел к той части, где хочу добавить аутентификацию в приложение, и я понял, что ASP. NET Core Identity происходит от специального вида DbContext, и я не уверен, нормально ли добавлять доменные DBSets в IdentityDbContext (в основном, создать один Db, который включает в себя как Identity, так и таблицы домена) ).

Я не нашел "лучших практик" для этого сценария, следует ли использовать другую БД для аутентификации, кроме доменной БД? Если это так, в моей таблице пользователей есть внешние ключи к различным таблицам (билеты для подключения к полетам, описания пользователей) - отделение пользователей от БД все сломает.

Буду признателен за ваше доброе мнение и надеюсь, что это Поток расскажет другим новичкам о наилучших направлениях при разработке аутентифицированных решений (удостоверений личности).

Заранее спасибо.

РЕДАКТИРОВАТЬ Просто для пояснения, когда я говорю о двух разных контекстах, я также имею в виду две отдельные базы данных.

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Менеджер авиакомпании, кажется, не маленький проект и потенциально может расшириться в конечном итоге. Сказав это, как насчет подхода не просто разделения баз данных, но разделения проектов / услуг. Хороший для обслуживания, и более гибкий. IdentityServer4, посмотрите на его репозиторий github для начала. https://github.com/IdentityServer/IdentityServer4 - здесь вы также сможете увидеть примеры того, как ваше приложение интегрируется с его сервисами.

0 голосов
/ 31 марта 2020

В моем случае я использовал только одну базу данных с таблицами идентификации, предоставленными aspnetcoreidentity, и проприетарными таблицами проекта, чтобы подключить пользователя к моим таблицам, я использовал тот же AspNetUserId. Я использую dbcontext для таблиц безопасности и dbcontext для других таблиц.

services.AddDbContext<PaginaInnovitaliaEditorEngineDbContext>(options =>
    options.UseSqlServer(
        Configuration.GetConnectionString("DefaultConnection")));

services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(
        Configuration.GetConnectionString("DefaultConnection")));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...