3つのレイヤーで構成されるASP.NET MVC5
プロジェクトでASP.NET Identity 2.0
を使用します。 Webアプリケーション(プレゼンテーション層)、単体テスト(テストプロジェクト)、クラスライブラリ(データ層)。 IdentityConfig.cs
は、WebアプリケーションのApp_Start
フォルダにありますが、thisページのグループベースのアクセス許可管理を実装すると、Webプロジェクトではなく、すべてのドメインモデルとIdentityConfig.cs
ファイルをデータレイヤプロジェクトのIdentityフォルダに保存します。 (プレゼンテーション層)。 IdentityConfig.cs
は私のデータレイヤプロジェクトに配置されたDbContext
クラスにアクセスする必要があるためです。これに何か問題はありますか?一方、App_Start
フォルダは少し説明できますか?ここでApp_StartフォルダからASP.NET ID IdentityConfig.csを移動
は、下の私のプロジェクトにASP.NETアイデンティティのフォルダ構造です:
DataLayer(クラスライブラリ)
コンクリート
EFDbContext
エンティティ(私のエンティティクラスを除きますASP.NET IDエンティティから)
アイデンティティ
ApplicationGroupManager
ApplicationGroupStore
GroupStoreBase
IdentityConfig
IdentityModels
プレゼンテーション層(Webアプリケーション)
App_Sta RT
コントローラ
AccountController
GroupsAdminController
ManageController
RolesAdminController
UsersAdminController限り、あなたはasp.netのアイデンティティを持っているとして、あなたはそれへの参照を追加する必要があります
おかげファイルのGlobal.asaxによって呼び出され、このコードを置くことができ、私は上記の質問にファイル構造を追加しました... –
>>>私はちょっと混乱しています。もちろん、セキュリティは主な関心事ですが、 ** 1)** ** DataLayer **フォルダ内のすべてのクラスを** PresentationLayer **に移動することをお勧めしますか? ** 2)** IdentityModelsをPresentationLayerに移動するとどうなりますか? ** 3)**すべてをPresentationLayerに移動すると、** EFDbContext **にアクセスする必要がありますが、それが良いかどうかはわかりません。それは大丈夫ですか?したがって、全体的に、ASP.NET Identity関連のすべてのクラスとモデルをIdentityModelsクラスを含むPresentationレイヤーに移動することをお勧めしますか? –
あなたはasp.netアイデンティティを使用している限り、完全な分離をすることはできません。それを行う唯一の解決策は、自分のアイデンティティシステムを構築することです。私の場合、私は常に妥協します。プレゼンテーション層にasp.netのアイデンティティーを独自のコンテキストで保持することによって節約される努力は、分離よりはるかに高いです。 –