0

ユーザーが特定の役割を担うことを要求するために、コントローラー内でアクションのグループを設定する方法はありますか?

たとえば、ユーザーに「採用」の役割を要求する5つのアクションがある場合、コードをグループ化して、単一の注釈に基づいてすべてのアクションに同じ役割を要求させることはできますか?

逆に、それが不可能な場合、特定のロールを要求するようにクラスをマークする方法があり、この要件を無視するためのいくつかのアクションを設定するためのアノテーションがありますか?

最後に、これがオプションでない場合、これを達成するために部分的なクラスを使用できますか?

私が考えていない他の方法はうまくいくでしょう。

4

2 に答える 2

1

ジャレド、

これは私がすることですが、それぞれに対してそれをしなければならないという問題を回避することはできません。

[Authorize]
public class HomeController : Controller

[Authorize(Roles = "Recruiter")]
public ActionResult MethodOne()
{

}

あなたの答えはここにあるようです:

1つのアクションでコントローラーAuthorizeAttributeをオーバーライドする

その質問への答えはあなたにも当てはまるようです。Orderプロパティを使用して、コントローラーに最も制限の少ない承認を設定し、メソッドに最も制限の厳しい承認を設定します。

コントローラーをこれ(ほとんどの方法の1つ)に設定し、免除したいもの(より少ない方法)については、authorizeステートメントをより制限的にします。

于 2012-07-12T23:00:54.160 に答える
0

[Authorize]よく調べてみると、(私が見つけた)アクションのグループに属性を適用する方法があるようには見えません。クラスまたは個別のアクションに適用する必要があるようです。Skittermの答えは良い選択肢ですが、私が解決したいと思っていた問題は解決しませんでした。

于 2012-07-31T15:17:33.920 に答える