.NET CoreアプリケーションでJWTトークン認証にOpenIddictを使用しています。私はthis tutorial続いてきましたが、私は今、次のエラー受け付けております:OpenIddict用のDbContextを設定する
InvalidOperationException: No database provider has been configured for this DbContext. A provider can be configured by overriding the DbContext.OnConfiguring method or by using AddDbContext on the application service provider...
マイConfigureServices
方法Startup.cs
中を:
public void ConfigureServices(IServiceCollection services)
{
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json");
Configuration = builder.Build();
services.AddEntityFrameworkSqlServer()
.AddDbContext<MyDbContext>(options =>
options.UseSqlServer(Configuration["Data:MyDbContext:ConnectionString"]));
services.AddIdentity<ApplicationUser, ApplicationRole>()
.AddEntityFrameworkStores<MyDbContext>()
.AddDefaultTokenProviders()
.AddOpenIddictCore<Application>(config => config.UseEntityFramework());
services.AddMvc();
// for seeding the database with the demo user details
//services.AddTransient<IDatabaseInitializer, DatabaseInitializer>();
services.AddScoped<OpenIddictManager<ApplicationUser, Application>, CustomOpenIddictManager>();
}
わからない私はときDbContextを追加することはできませんと、このことについて何をすべきかAddIdentity
を使用してください。
OpenIddictを追加する前にすべての接続文字列が問題なく機能していました。
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Verbose",
"System": "Information",
"Microsoft": "Information"
}
},
"Data": {
"DefaultConnection": {
"ConnectionString": "my connection string"
},
"SaleboatContext": {
"ConnectionString": "my connection string"
}
}
}
マイDbContext:
UPDATEここ は私appsettings.json
ファイルであるためEntityFrameworkコアRC2での設計変更に
public class ApplicationUser : IdentityUser { }
public partial class MyDbContext : IdentityDbContext<ApplicationUser>
{
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
は、あなたのDBのコンテキストを共有していただけますか?私は、接続文字列が正しくEntityFrameworkに流れていることを確認したいと思います。 – Pinpoint
私の接続文字列が私のdbcontextにない、それは私のappsettings.jsonにあります –
あなたの接続文字列が設定されている場所は本当に重要ではありません。私はちょうどあなたのコンテキストが外部構成を可能にする正しいコンストラクタを持っていることを確認したい。 – Pinpoint