2016-08-26 12 views
2

私は新しいASP.NETコアプロジェクトを設定していて、私のMVCプロジェクトで、私はユーザ登録用のIDを使用したい/ログインなど抽出アイデンティティが

私ができます私自身で作成してください。しかし、私は実際にコントローラとアクションの権限属性を利用したいと思っています。

しかし、MVCプロジェクトがEntity/DBContextsに直接依存しないように、Identity部分を別のプロジェクトに抽出したいとします。

アイデンティティを持つ新しいMVCプロジェクトを作成するとき、それが作成されます。

  • 移行
  • ApplicationDBContext

のと同様に参照を持つ

  • サービスMicrosoft.AspNetCore.Identity .EntityFrameworkCore
  • Microsoft.EntityFramework。*

は私が私のコントローラがちょうどそのプロジェクトからサービスを使用する別のプロジェクトへのすべての識別コードを抽出するための簡単な方法があります(のコンストラクタに注入コントローラ)?

+0

マルチテナントのアイデンティティを実装している私のプロジェクトでこれをやっています。https://github.com/joeaudette/cloudscribe –

+0

これはかなりクールです。私は似たようなことをしようとします。それをもう一度見てみると、それを別のプロジェクトに抽出するのは簡単なようです。ありがたいことに、私はマルチテナントについて心配する必要はありません。 – Elias

答えて

0

UI/MVCレイヤがDb/Storageレイヤを直接参照しないように、レイヤ間でプロジェクト参照を区切る方法は、プロジェクトの他のレイヤのIServiceCollectionで拡張メソッドを作成することです。

ビジネス/サービス層を参照し、Business/Service層にあるIServiceCollectionの拡張メソッドを呼び出すUIは、Db/Storage層の拡張メソッドを呼び出すことができます。例と

同様の質問here

しかし、あなたは別のクラスライブラリにEFコードを移動すると、そこに実行しているEFは、マイグレーションが動作しません生成するコマンドをいくつかの既知の問題。クラスライブラリを独自のStartupクラスを持つアプリケーション/コンソールアプリケーションにすることで、この問題を回避できます。私の理解は、これは後で修正されるということです。

関連する問題