テーブル ユーザー、ロール、およびロール特権を持つ ASP.NET MVC4 Web アプリケーションがあります。
userid username password roleid] 値: 1 user1 12345 3、2 user2 12345 1、3 user3 12345 2
[roleid, rolename ] 値: 1 管理者、2 クライアント、3 ゲスト、4 ...
[Roleid、Action、GrantAccess] 値: 1 /Home/Index Y 1 /Home/Settings Y 1 /Home/Dashboard Y 2 /Home/Index Y 2 /Home/Settings N 2 /Home/Dashboard Y 3 /Home/Index Y 3 /ホーム/設定 N 3 /ホーム/ダッシュボード N
ASP.NET MVC フォーム認証で次のことを実現したいと思います。
コントローラー アクションには、ロールへの拒否されたアクセスを動的に付与する必要があります。ユーザーがアクセスを許可されていないコントローラー アクションにアクセスしようとすると、アプリケーションはサインアウトする必要があります。
1) Authorize(Roles="admin")] のようなロール名のハードコーディングは機能しないため、これを達成するための最良の方法を知りたい
2)ユーザーログイン時に初期化する必要があるユーザー固有の設定もあります.asp.netフォームでは、これはセッション変数に保存されていました.asp.net MVCでTempDataを使用して同じことを行うことができます.これはベストプラクティスですか?