ASP.NET MVC2 で SaaS 基幹業務アプリケーションの構築を開始していますが、開始する前に適切なアーキテクチャ基盤を確立したいと考えています。
データ アーキテクチャとビジネス ロジックが非常にシンプルになり、効率性と費用対効果が重要な問題になるため、私は共有データベースと共有スキーマのアプローチに取り組んでいます。
テナント間でデータを適切に分離するために、テナント ビュー フィルター セキュリティ パターンを実装したいと考えています (こちらをご覧ください)。これを行うには、アプリケーションにログインしているユーザーに基づいて、アプリケーションがさまざまなテナント (DB ログイン) を偽装する必要があります。ログイン プロセスはできるだけシンプルにする必要があります (エンタープライズ クラスのソフトウェアにはなりません)。そのため、顧客はユーザー名とパスワードのみを入力する必要があります。
ユーザーは、 http ://tenant1.myapp.comやhttp://tenant2.myapp.comなどの独自のサブドメイン (サブドメイン ルーティングを使用) を介してデータにアクセスします。
このシナリオを満たす最善の方法は何ですか?