Конфликт таблиц при интеграции Identity Server 4 и Entity Framework Core вместе - PullRequest
0 голосов
/ 05 августа 2020

Я создал основной проект do tnet с помощью команды «do tnet new angular…». С возможностью аутентификации индивидуальной учетной записи. Ядро do tnet создало проект с контекстом данных приложения, подобным следующему.

public class ApplicationDbContext : ApiAuthorizationDbContext<ApplicationUser>
{
    public ApplicationDbContext(
        DbContextOptions<ApplicationDbContext> options,
        IOptions<OperationalStoreOptions> operationalStoreOptions) : base(options, operationalStoreOptions)
    {
    }

} Я хотел бы интегрировать сервер идентификации 4 в тот же проект и обслуживать его в том же экземпляре контроллеры api. Я следовал приведенному ниже руководству, чтобы сохранить конфигурацию и оперативное хранилище в базе данных ef. http://docs.identityserver.io/en/latest/reference/ef.html

Я обнаружил, что DeviceCodes и таблица Persisted Grant уже находятся в базе данных. пока я пытался перенести базу данных в соответствии с требованиями Operational Store. Я изучил исходный код ef, что класс ApiAuthorizationDbContext уже включил эти таблицы для поддержки Identity Server.

Теперь я не совсем уверен, какое решение является лучшим (1) Должен ли я переключить ApplicationDbContext на расширить IdentityDbContext вместо ApiAuthorizationDbContext и полностью использовать способ, описанный в руководстве выше? (2) Или мне следует пропустить шаги, связанные с OperationalStore DbContext, и позволить серверу 4 идентификации использовать существующие таблицы, предоставленные ApiAuthorizationDbContext? И как их собрать? Какая лучшая практика? Заранее большое спасибо.

1 Ответ

0 голосов
/ 05 августа 2020

В своем приложении я взял исходный код для пакетов NuGet ядра IdentitServer4 entityframework и добавил их в свой проект IdentityServer (в отдельной библиотеке классов).

* 1002 реализован, а также как и когда применять миграции. Это упрощает настройку по своему усмотрению.

Тогда наличие отдельных контекстов для IdentityServer и потребностей вашего приложения также дает вам хорошее разделение проблем.

...