3

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

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

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

それはマイクロソフトを追加する伴うだろう.AspNetCore.Identity.EntityFrameworkCoreパッケージであり、このパッケージをWebプロジェクトに組み込むことでSRPルールを破り始めるようです。

DALの場合と同様に、すべての識別コード(サービス、モデル)を外部クラスライブラリとして移動できますか。

+0

はいできます。それを外部ライブラリの拡張メソッドに移動し、コンポジションルート(Webプロジェクト)に呼び出します。 – Nkosi

+0

私は同じことをしようとしているが、それを理解していないので、 – Reza

答えて

0

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

  1. メイクのアイデンティティ:

    IMOの2つのオプションがあります。 Asp.Net Core IdentityはOAuth2をサポートしているため(OAuth2はコード認可などのインタラクティブな認可をサポートしています)、ユーザーはログイン/登録プロセス中にこのWebアプリケーションのエンドポイントにリダイレクトされます。

  2. はあなたとの同一コントローラを組み合わせ、あなたのDALライブラリにIDデータを移動し、これを参照してください。SRPはあなたにとって重要である場合https://www.codeproject.com/Articles/1156558/ASP-NET-Core-Moving-IdentityDbContext-and-EF-model

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

関連する問題