の動的メニューを作成しようとしていますASP.NET MVC4 web application
。メニューを作成しているので、ユーザーがアクセスできないメニュー項目がメニューに表示されないようにしたいと考えています。
特定の役割を必要とする各ページでフォーム認証と[Authorize]
属性を使用しています。
2 つの string(Controller and Action)
とログインしているユーザーが与えられた場合、ユーザーがそのコントローラー アクションにアクセスできるかどうかをどのように判断できますか?
私のメニューデータはすべてデータベースに保存されています。メニューをレンダリングする私の計画は、メニュー データの JSON オブジェクトを構築し、それをビューに埋め込むことです。次に、クライアント側でメニューを使用してテンプレートに Handlebars.js
プラグインします。JSON object
私がやろうとしているのは、メニュー データをレンダリングしているときに、ユーザーの特定のコントローラー/アクションのアクセス許可を確認することです。私が最初に考えたのは、リフレクションを使用してコントローラーのアクション メソッドを調べ、Authorize 属性の存在を確認し、現在ログインしているユーザーがそのページにアクセスするために必要な役割を持っているかどうかを確認することでした。そうでない場合、メニュー項目はレンダリングされません。
私はいつも使いreflection
たがりませんが、通常はもっと簡単な方法があります。