14

ばかげた質問に聞こえるかもしれませんが、管理者ユーザーのみにリンクを表示するにはどうすればよいですか?

通常のユーザーに次のリンクが表示されているとします:
ホーム / 概要 / 連絡先

また、管理者ユーザーには次のリンクが表示されます:
ホーム / 概要 / 連絡先 / 管理者

コントローラーで制限して、メニューでコントローラーをリンクしてみました。ただし、すべてのユーザーのリンクが表示されますが、管理者以外のユーザーへのアクセスは許可されません

ビューをオーバーロードできますか?

4

1 に答える 1

37

使用しているメンバーシップ/ユーザー プロバイダーの種類に応じて、ユーザーがログインして特定のロールにいるかどうかをビューから直接確認できるはずです。

したがって、次のような結果になります。

@Html.ActionLink("Index", "Home") 
@Html.ActionLink("About", "Home") 
@Html.ActionLink("Contact", "Home") 
@if ( User.Identity.IsAuthenticated ){
    if ( User.IsInRole("Admin") ){
        @Html.ActionLink("Admin", "AdminController")        
    }
}

アクション メソッドに[Authorize]属性を追加することを忘れないでください。Admin

[Authorize(Roles="Admin")]
public ActionResult Admin()
{
    // ...
    return View();
}
于 2013-08-20T21:14:51.893 に答える