メンバーやそのようなものを作成するために独自の「ユーザー」テーブルを使用したいので、カスタム ASP.NET メンバーシップ プロバイダーを構築しています。状況は次のとおりです。
- サービス層を含む「サービス」プロジェクトを参照する MVC 4 プロジェクトがあります。
- 単体テストに役立つカスタム MembershipProvider のラッパーを作成しました。このラッパーは、カスタム MembershipProvider を参照します。
- サービス層からラッパーを参照します。
- 私が知る限り、カスタム MembershipProvider を MVC4 プロジェクト内 (App_Data フォルダー内) に配置しました。
これで、MVC4 -> Service Layer -> Wrapper -> MVC4 という循環依存関係ができました。私の質問: どうすればそれを取り除くことができますか? 理想的には、メンバーシップ プロバイダーを別のプロジェクトに配置したいのですが、うまくいきません。それについて何か提案はありますか?Google はあまり役に立ちません。
おまけの質問 1: MembershipProvider の代わりに SqlMembershipProvider を拡張する必要がありますか?
おまけの質問 2: これ以上の選択肢はありませんか? この ASP.NET メンバーシップ全体は本当に時代遅れに感じられ、多くのマイナス面があります (たとえば、テスト可能に構築されていません)。