背景 各プロジェクトには1つのアカウントが関連付けられています。各ユーザーは、ゼロから複数のアカウントにアクセスする権限を持つことができます。これは、各ユーザーがユーザーのアカウント権限に基づいてプロジェクトのサブセットにのみアクセスできることを意味します。オブジェクトモデル認可 - オブジェクト指向設計の質問
ユーザーオブジェクトは、ユーザーがアプリケーションにサインインすると読み込まれ、アカウントのアクセス許可もその時点で読み込まれます。そのUserオブジェクトは、アプリケーションのキャッシュに格納されます。プロジェクトは必要に応じてロードされます。
質問 アカウントの制限を実施する最も良い方法は何ですか?実際のプレゼンテーションロジックから抽象化して欲しいと思っていますが、Userオブジェクトに依存するため、承認ロジックをProjectオブジェクトに入れるのは必ずしも良いアプローチではないと思います。皆さんはどう思いますか?
例:(ASPXページのコードの後ろ)
Project oProject = New Project(projectId); //Pass an Int32 here
if (oProject.Load()) //This operation needs to check user permissions somehow
{ /* Do stuff */ }
それでは、ユーザーオブジェクトをプロジェクトオブジェクトに渡しますか? –
インターフェイスを介して間接的にこのソリューションでは、プロジェクトとユーザーがこのインターフェイスについて知っているという事実を回避することはできませんが、プロジェクトはユーザーまたはTestHarnessなどと話しているかどうかを知る必要はありません。 – DanDan