IdentityServer4升级到.NET Core 2.0(AddConfigurationStore,AddOperationalStore)的问题
问题描述:
我从.NET Core 1.1升级到.NET Core 2.0并遇到以下问题(我也升级了一些库以支持.net core 2.0)IdentityServer4升级到.NET Core 2.0(AddConfigurationStore,AddOperationalStore)的问题
CS1929“ConfigurationStoreOptions”不包含关于“UseNpgsql”和最好的扩展方法过载的定义“NpgsqlDbContextOptionsExtensions.UseNpgsql(DbContextOptionsBuilder,串,动作)”要求式“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;”
答
解决方案:
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;
});
2.0.0 RC1刚刚发布的NuGet该目标netstandard 2.0 –