したがって、これはばかげた質問に聞こえるかもしれませんが、管理者ユーザーのみにリンクを表示するにはどうすればよいですか?
通常のユーザーに次のリンクが表示されているとします。
ホーム/概要/お問い合わせ
また、管理者ユーザーには次のリンクが表示されます。
ホーム/概要/連絡先/管理者
コントローラーで制限し、メニューでコントローラーをリンクしてみました。しかし、それでもすべての人にリンクが表示され、管理者以外の人にはアクセスが許可されません
ビューをオーバーロードできますか?
使用しているメンバーシップ/ユーザープロバイダーの種類に応じて、ユーザーが特定のロールにログインしているかどうかをビューから直接確認できるはずです。
したがって、次のような結果になります。
@Html.ActionLink("Index", "Home")
@Html.ActionLink("About", "Home")
@Html.ActionLink("Contact", "Home")
@if ( User.Identity.IsAuthenticated ){
if ( User.IsInRole("Admin") ){
@Html.ActionLink("Admin", "AdminController")
}
}
また、Admin
アクションメソッドに[Authorize]
属性を追加することを忘れないでください。
[Authorize(Roles="Admin")]
public ActionResult Admin()
{
// ...
return View();
}