asp.net - 在 ASP.NET MVC5 中隐藏某些角色的链接

标签 asp.net asp.net-mvc-5 authorization

所以这听起来可能是一个愚蠢的问题,但我如何仅显示管理员用户的链接?

假设普通用户看到以下链接:
首页/关于我们/联系方式

管理员用户会看到以下链接:
首页/关于我们/联系方式/管理员

我尝试在 Controller 中进行限制并在菜单上链接 Controller 。但它仍然显示每个人的链接,只是不允许除管理员之外的任何人访问

View 可以过载吗?

最佳答案

根据您使用的成员(member)/用户提供程序的类型,您应该能够直接从 View 中检查用户是否已登录并处于特定角色。

所以你最终会得到类似的东西;

@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 Action 方法:
[Authorize(Roles="Admin")]
public ActionResult Admin()
{
    // ...
    return View();
}

关于asp.net - 在 ASP.NET MVC5 中隐藏某些角色的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18345004/

相关文章:

c# - MVC Razor 创建要提交的对象列表

c# - SqlException - 从服务器接收结果时发生传输级错误

javascript - 有什么方法可以从 Javascript 触发 VB.NET 按钮?

c# - 我应该如何将用户与域对象相关联?

vb.net - MVC 5 - 从 IdentityDbContext 和 IdentityUser 继承时,EF 6.1 脚手架失败

php - 如何在没有密码的情况下在 MediaWiki 1.19 中授权用户?

c# - 在不使用 AuthorizeAttribute 的情况下将 AuthorizationPolicy 绑定(bind)到 Controller/Action

c# - 双击数据网格中的链接按钮,它将变为下拉列表

asp.net - 使用与 Web 服务器分开的 SQL 来提高数据安全性(Windows 2003/SQL 2008)?

c# - 添加到 Authorization c# API 的 header