私が解決しようとしている問題は、私には非常に単純に思えます。私のアプリケーションには、ユーザーがさまざまな領域に移動できるサイト全体のメニューがあります。メニュー項目は、単に ActionResult メソッドへのリンクです。アクションでカスタム AuthorizeAttribute を使用して、ユーザーの承認ロールを強制しています。ユーザーが適切な役割を持っていない場合、ユーザーがアクションを実行できないという点で、これはうまく機能します。ただし、私がやりたいことは、そのアクションを実行する権限がない場合に、そのアクションに移動するためのメニュー オプションを表示することですらありません。
したがって、最も単純なレベルでは、次のようなことができるようにしたいと考えています。
var isAuthorized = IsAuthorized("ControllerName", "ActionName", currentUser);
IsAuthorized メソッドは、アクションの AuthorizeAttributes を調べて、指定されたユーザーがそれを実行できるかどうかを評価します。
そのようなアプローチは存在しますか?この評価を行っている時点でコントローラーのインスタンスがないと仮定します。