6

私が解決しようとしている問題は、私には非常に単純に思えます。私のアプリケーションには、ユーザーがさまざまな領域に移動できるサイト全体のメニューがあります。メニュー項目は、単に ActionResult メソッドへのリンクです。アクションでカスタム AuthorizeAttribute を使用して、ユーザーの承認ロールを強制しています。ユーザーが適切な役割を持っていない場合、ユーザーがアクションを実行できないという点で、これはうまく機能します。ただし、私がやりたいことは、そのアクションを実行する権限がない場合に、そのアクションに移動するためのメニュー オプションを表示することですらありません。

したがって、最も単純なレベルでは、次のようなことができるようにしたいと考えています。

var isAuthorized = IsAuthorized("ControllerName", "ActionName", currentUser);

IsAuthorized メソッドは、アクションの AuthorizeAttributes を調べて、指定されたユーザーがそれを実行できるかどうかを評価します。

そのようなアプローチは存在しますか?この評価を行っている時点でコントローラーのインスタンスがないと仮定します。

4

1 に答える 1

6

これへのアプローチを探すための2回目のパスは、実際に私が探していたものを正確にもたらしました。他の人がこの答えにつながる場合に備えて、この質問はここに残しておきます。

ASP.NETMVC3の承認されたアクションリンク拡張機能を作成します

実装は、私が探していた構文をほぼ正確に使用し、実際に機能します。

于 2012-09-21T14:44:03.277 に答える