クラスライブラリにIDを移動するASP.Net Core

asp.net-core asp.net-core-identity entity-framework-core

質問

私はASP.Netコアに基づいて新しいプロジェクトを開発しました。私はSOLIDルールのSingle responsibility原則に従うために、すべてのEFコード(モデル、マッピング、DbContext)を専用のDALクラスライブラリに移動しました。

しかし、今私は自分のプロジェクトに認証を追加する必要があり、次のものをWebプロジェクトのStartup.csに別のチュートリアルのように追加する必要があります。

services.AddIdentity<ApplicationUser, IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();

それにはMicrosoft.AspNetCore.Identity.EntityFrameworkCoreパッケージを追加する必要があり、私のWebプロジェクトにこのパッケージを含めることでSRPルールを破り始めるようです。

DALのために行ったように、すべてのIDコード(サービス、モデル)を外部クラスライブラリとして移動できますか?

人気のある回答

アイデンティティコードにはロジックとUI(ログイン/ログアウト、登録など)の両方があるため、Webアプリケーションである必要があります。

IMOには2つのオプションがあります。

  1. アイデンティティを別のWebアプリケーションとして作成する。 Asp.Net Core IdentityはOAuth2をサポートしているため(OAuth2はコード認可などのインタラクティブな認可をサポートしています)、ユーザーはログイン/登録プロセス中にこのWebアプリケーションのエンドポイントにリダイレクトされます。
  2. アイデンティティコントローラをあなたのものと組み合わせ、あなたのDALライブラリにIDデータを移動するには、次を参照してください: https : //www.codeproject.com/Articles/1156558/ASP-NET-Core-Moving-IdentityDbContext-and-EF-model

最初のオプションは、SRPがあなたにとって重要である場合、より良いオプションを作成します。別のURLへのリダイレクトが悪いユーザーエクスペリエンスのように思われる場合は、2番目のオプションが優れている可能性があります。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ