[Authorize(Roles = "Administrator")] などを使用してページへのアクセスを制御していますが、それに加えて、クライアントはさらに多くのことを望んでいます。サブユーザーを作成し、アクセスできる画面を決定できるユーザーがいます。たとえば、ユーザー 1 は、サブユーザー 1 が画面 1 ~ 4 を取得するが、画面 5 ~ 8 を取得しない可能性があることを示す場合があります (ここでは簡単にするために数字を使用しています)。SubUser 2 には奇数の画面が表示され、SubUser には偶数の画面が表示される場合があります。
これは、ロールベースのセキュリティのようには見えません。ユーザーがサブユーザーを選択するための画面を作成し、すべての画面のチェックボックスを使用して別の画面に移動し、サブユーザーが到達できるものをチェックします。簡単です。
私の質問は、アプリでそれを強制する方法ですか? 明らかな方法は、get ごとに DB にアクセスし、そのユーザー名とその画面の ID を渡して、アクセス権があるかどうかを確認することです。すべてのページでそのチェックのためにDBにアクセスしないようにするためのより良い方法はありますか? セッション オブジェクトがないため、アクセスしてセッションに保存できるページ ID の配列を (1 回だけ) 取得できません。