ASP.Net MVC 4 アプリケーションを構築しています。ユーザーはログインする必要があり、アカウントはデータベースに対してチェックされます。このデータベースでは、ユーザーは 1 つ以上の部門に関連付けられています。ユーザーが持つ要件は、一度に 1 つの部門に対してのみアプリケーションを使用できることを示しています。
これは、ログインに成功した後、ユーザーがリンクされている部門の数を確認することを意味します。これが 1 つだけの場合は、アクティブな部門になります。複数ある場合は、ユーザーにそのうちの 1 つを選択するように求めます。この選択がアクティブな部門になります。この値は、セッション全体で持続する必要があります。
アプリケーションには、アクティブな部門に属するデータへのアクセスのみを許可する必要がある多くのユース ケースがあります。これらの制限は、ビジネス層、つまり、ASP.Net コンテキストを認識しない C# クラス ライブラリに適用されます。
アクティブな部門に対するユーザーの選択を保持するにはどうすればよいですか? セッションを超えて永続的ではないため、これをデータベースに保存するという考えはあまり好きではありません。一方、私のビジネス層では、すぐに使用できる持続性プロビジョニングが見つかりません。私の ASP.net アプリケーションはセッションを提供しますが、これらはビジネス層には見えません。
この値をセッションに保存し、AuthenticateRequest イベントなどを使用して、アクティブな部門をビジネス層に渡す必要がありますか?
より良い代替手段はありますか?