【问题标题】:Issue with IdentityServer4 upgrade to .NET Core 2.0 (AddConfigurationStore, AddOperationalStore)IdentityServer4 升级到 .NET Core 2.0 的问题(AddConfigurationStore、AddOperationalStore)
【发布时间】:2018-02-13 05:41:06
【问题描述】:

我从 .NET Core 1.1 升级到 .NET Core 2.0 遇到了以下问题(我还升级了一些库以支持 .NET Core 2.0)

CS1929“ConfigurationStoreOptions”不包含“UseNpgsql”的定义,并且最佳扩展方法重载“NpgsqlDbContextOptionsExtensions.UseNpgsql(DbContextOptionsBuilder, string, Action)”需要“DbContextOptionsBuilder”类型的接收器

Startup.cs

        services.AddIdentityServer()
            .AddSigningCredential(Certificate.Get())
            .AddAspNetIdentity<User>()
            .AddConfigurationStore(builder =>
                builder.UseNpgsql(connectionString, options =>
                    options.MigrationsAssembly(migrationsAssembly)))
            .AddOperationalStore(builder =>
                builder.UseNpgsql(connectionString, options =>
                    options.MigrationsAssembly(migrationsAssembly)));

使用 UseSqlServer 时同样的问题

// configure identity server with in-memory users, but EF stores for clients and resources
services.AddIdentityServer()
    .AddTemporarySigningCredential()
    .AddTestUsers(Config.GetUsers())
    .AddConfigurationStore(builder =>
        builder.UseSqlServer(connectionString, options =>
            options.MigrationsAssembly(migrationsAssembly)))
    .AddOperationalStore(builder =>
        builder.UseSqlServer(connectionString, options =>
            options.MigrationsAssembly(migrationsAssembly)));

http://docs.identityserver.io/en/release/quickstarts/8_entity_framework.html

注意:我添加了“使用 Microsoft.EntityFrameworkCore;”

【问题讨论】:

  • 2.0.0 RC1 刚刚发布到针对 netstandard 2.0 的 nuget

标签: c# asp.net-mvc postgresql asp.net-2.0 identityserver4


【解决方案1】:

我自己也遇到了同样的问题。 IndentityServer4.EntityFramework github 的拖网显示了一个示例 Startup.cs 使用 ConfigureDBContext 属性

【讨论】:

    【解决方案2】:

    解决方案:

            services.AddIdentityServer()
                .AddSigningCredential(Certificate.Get())
                .AddAspNetIdentity<User>()
                .AddConfigurationStore(options =>
                {
                    options.ConfigureDbContext = builder =>
                        builder.UseNpgsql(connectionString,
                            sql => sql.MigrationsAssembly(migrationsAssembly));
                })
                // this adds the operational data from DB (codes, tokens, consents)
                .AddOperationalStore(options =>
                {
                    options.ConfigureDbContext = builder =>
                        builder.UseNpgsql(connectionString,
                            sql => sql.MigrationsAssembly(migrationsAssembly));
    
                    // this enables automatic token cleanup. this is optional.
                    options.EnableTokenCleanup = true;
                    options.TokenCleanupInterval = 30;
                });
    

    【讨论】:

      猜你喜欢
      • 2018-08-03
      • 2011-02-17
      • 2017-07-05
      • 2019-11-19
      • 2022-09-30
      • 1970-01-01
      • 2014-04-10
      • 2011-09-19
      • 2018-01-28
      相关资源
      最近更新 更多