0

私は MVC の経験があまりなく、私のニーズに合わない多くの認証例を見ています。

1 つの MVC アプリケーションから複数のシステムへのアクセスを提供する必要があります。各システムは独自の認証を管理し、同様のデータを提供します (つまり、システム X とシステム Y の両方がウィジェットのリストを提供します)。さらに、ユーザーはシステム X とシステム Y の両方にログインでき、資格情報の再入力を求められることなく、一方または他方からウィジェットを表示できます。

私の計画は、単純なルート {controller}/{action}/{systemName} (つまり、Widgets/Index/SystemX) を使用することです。詳細はあいまいですが、カスタムの AuthorizeAttribute と SessionProvider が必要だと思います。SessionProvider は、sessionID を返す System へのログインを処理します。このセッション ID は、各システムからデータを照会するときに使用されます。最もあいまいな詳細の 1 つは、セッション内の各システムのユーザー情報 (SystemName、user、sessionId) を保存する最良の方法です。セッション状態? クッキー?フォーム認証チケット? 他の何か?

ASP.NET と MVC に既にあるものを活用したいのですが、ユーザー用のデータベースは必要ありません。

批評や提案は大歓迎です。

4

1 に答える 1

1

SystemX と SystemY が同じアプリケーションの異なる領域である場合は、ASP.NET MVC の Areas 機能を使用したほうがよい可能性があります。これにより、アプリケーションを複数の領域に分割できます。この領域は、論理的に関連するコントローラー、ビュー、モデルなどのグループです。

各領域には独自の web.config と認証方法 (たとえば、ASP.Net MVC 3 領域と混合モード認証) を設定できるため、これが役立つ場合があります。


SystemX と SystemY が基本的に同じウィジェット リスト機能であるが、クライアントが異なるだけである場合は、ASP.NET MVC のマルチテナンシーを検討することをお勧めします。

于 2013-01-19T10:31:41.857 に答える