私が解決しようとしている問題は、私にとっては非常に簡単だと思われます。メニュー項目は、単にActionResultメソッドへのリンクです。私は、カスタムのAuthorizeAttributeをアクションに使用して、ユーザーの権限の役割を強化しています。それは適切な役割を持たないユーザーがアクションを実行するのを防ぎます。しかし、私がしたいことは、実行する権限がない場合、そのアクションに移動するためのメニューオプションを表示していないことです。だから、コントローラアクションがそれを呼び出す前に承認されているかどうかを確認
、最も単純なレベルで、私はこのような何かを行うことができるようにしたい:
var isAuthorized = IsAuthorized("ControllerName", "ActionName", currentUser);
のisAuthorized方法は、その後のアクション上の任意のAuthorizeAttributesを見て、特定のユーザーがであるかどうかを評価しますそれを実行することができます。
このようなアプローチはありますか?この評価を行っている時点でコントローラのインスタンスがないとします。
"カスタム' AuthorizeAttribute' - 自分で書いたものを意味しますか、それともその名前で組み込まれたものの1つですか? –
はい、私は特定の認証要件を実装するために自分自身を書いています。 "public class MyAuthorizeAttribute:AuthorizeAttribute"のように、 – Dan