既定の MVC3 アプリケーションでは、イントラネット プロジェクト テンプレートを使用する場合は Windows 認証が許可され、インターネット プロジェクト テンプレートの場合はフォーム認証が許可されます。私も利用したいサイトがあります。さらに、ユーザーを認証する独自のカスタムタイプの認証を使用する既存のサイトがあります (承認やロールはなく、識別のみです)。認証のためにレガシーシステムからのデータに加えて、それぞれの機能を使用する必要があるかもしれません。このため、認証を抽象化して分離する方法を決定しようとしています。完全に構成に基づいて、ある種の依存性注入を使用したいので、この同じサイトを 2 つの異なる場所にデプロイし、構成のみを変更することで認証モデル (Windows 認証/フォーム認証/カスタム認証) を切り替えることができます。
現在、MVC3 テンプレート プロジェクトを含む、私が扱ってきたすべての ASP.NET アプリケーションは、使用されている認証の種類と非常に密接に結びついているようです。
私はこれについて箱の外で考えすぎていますか?
これは可能ですか、またはこの密結合の理由はありますか?
更新 私が抱えている本当の問題は、一部のユーザーに使用する必要がある既存のレガシー認証と、他のユーザーに必要なフォーム認証の間にあります。Windows 認証とフォーム認証は、ログイン フォームが使用されていないため、実際には問題になりません。ただし、カスタム認証とフォーム認証を検討してください。LogIn フォームは、FormsAuthentication、より具体的には System.Web.Security と密接に結合されています。(つまり、Membership.ValidateUser、FormsAuthentication.SetAuthCookie など)。
FormsAuthentication と Membership を使用するのではなく、使用する認証を AccountController に注入したいと思います。
これまでのところ、私の問題が何であるかについて、これはより理にかなっていますか?