0

勤務先の会社のMVCRazor(.Net)サイトを構築しています。それでも、私はまだMVCに非常に慣れていないので、これを行う方法を考えていました。実際、2つの質問がありますが、最初の質問の方が重要です。

そして、ログインしたユーザーはビューバッグに保存されます。ユーザーには、ユーザーの役割(例:クライアント、コーチ、管理者)を含むemumの値があります。カスタムロールのアクションにフィルターを作成するにはどうすればよいですか?

[Roles(Coach,Admin)]    
public ActionResult Index(Somemodel model)
        {
            if (ModelState.IsValid)
            {
                dosomestuff()

        }
        return View();
    }

第二に、これは怠け者のためだけです。フィルタからメニュー項目を生成することは可能ですか?また、メニュー項目を表示する役割を指定することもできますか?

例:

[MenuItem]
[Roles(Coach,Admin)]    
public ActionResult Index(Somemodel model)
        {
            if (ModelState.IsValid)
            {
                dosomestuff()

        }
        return View();
    }

この場合、コーチまたは管理者としてマークされているユーザーのみに対して、これが何らかのメニューに自動的に表示される構造を作成できますか?

助けてくれてありがとう!

4

1 に答える 1

1

カスタムロールのアクションにフィルターを作成するにはどうすればよいですか?

Authorizeロールプロバイダーにクエリを実行する属性を使用できます。

[Authorize(Roles = "Coach, Admin")]
public ActionResult Index(Somemodel model)
{
    if (ModelState.IsValid)
    {
        dosomestuff()
    }
    return View();
}

フィルタからメニュー項目を生成することは可能ですか?

UIを構築するのではなく、承認を実行するために承認フィルターを使用する必要があります。HTMLヘルパーまたはパーシャルを使用してこれらのメニュー項目を生成することを検討してください。ビュー内では、以下を使用して、ユーザーが特定の役割を果たしているかどうかをいつでも確認できます。

@if (User.IsInRole("Coach"))
{
    <li>This menu will be visible only to users in the Coach role</li>
}
于 2013-03-22T09:51:38.513 に答える