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 回答