現在、次の列を含む独自の「アクセス許可」テーブルを使用している Web アプリケーションがあります。
- ユーザー名 - Windows ユーザー名 (Context.User.Identity.Name)
- DivisionID - 部門テーブルへのリンク
- RoleID - カスタム ロール テーブルから取得
- RegionID - アプリケーションを国 (カナダ、米国、国際) に分割するために最近追加されたフィールド
ユーザーがサイトにログインすると、入力するリージョンを選択し、その特定の RegionID に権限が設定されているかどうかに基づいて、それらのリージョンへのアクセスを許可する必要があります。Region を選択すると、RegionID が Session に保存され、このパーミッション チェックとページへのデータの入力方法の定義に使用されます (すべてのページにまだ Session 変数を実装していないため、必要に応じて変更できます)。する必要があります)
私が最初に考えたのは、各ページでアクセス許可チェックを実行して、次の 3 つの宛先のいずれかに送信することです。
- 無効な権限ページ (false)
- リージョン選択ページ - セッションでリージョンが選択されていません (RegionID = 0)
- リクエストされたページ - そのリージョンの権限が設定されている場合
Global.asax 内で Application_AuthenticateRequest メソッドを使用することも調べましたが、この領域内で Session を使用できず、Application_AuthenticateRequest を本来よりも多くヒットしているようです。
私の現在のアプリでは、アクセス許可に基づいて、対応する地域で各ユーザーを認証するための最良の方法は何ですか?