私のASP.NET 5 MVCアプリケーションの認可ルール/ポリシーを作成しています。それを作成するのは簡単で簡単でしたし、(私の基本的なテストで)うまくいきました。しかし、私は今、私のデータコンテキストを要件に合わせる必要があります。AuthorizationOptionsへの依存性注入
DbContext
を実装するMyContext
オブジェクトを取るIAuthorizationRequirement実装でコンストラクタを作成しました。
私はStartup.cs
ファイルにIAuthorizationRequirementを登録しています。私のルールの実行時に
services.Configure<AuthorizationOptions>(options =>
{
options.AddPolicy("AllowProfileManagement", policy => policy.Requirements.Add(
new AllowProfileManagementRequirement(new MyRepository(new MyContext()))));
});
残念ながら、MyContext
は(遠くStartup.cs
中まで)ので、同じように使用されている接続文字列を認識していない:(
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<MemorialContext>(options =>
options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
私はそうでないこれらのタイプのためのDIを使用していますし、それは働いている)。
services.AddTransient<MyRepository>(
provider => new MyRepository(provider.GetRequiredService<MyContext>()));
私は正しいことではないことを知っていますが、私はこの権利をどのようにしてDIがすべてを活用しているようにするのか分かりません。