AuthorizeAttribute MVC,基于用户类型限制?

时间:2013-08-06 14:56:55

标签: authentication asp.net-mvc-4

有没有办法使用AuthorizeAttribute来限制用户类型的访问?我有一个管理员登录和一个实习生登录。

截至目前,这两个登录都会显示我的管理页面上的所有标签。我想要的是限制实习生登录看到的标签数量。

我可以使用AuthorizeAttribute来做到这一点吗?请指教。

非常感谢

1 个答案:

答案 0 :(得分:1)

AuthorizeAttribute放置在控制器或操作方法上,以防止它们为未授权的个人执行。

在您的情况下,您要做的是阻止根据用户类型显示菜单。

为此,您将使用角色来确定每个用户拥有的权限。

然后在视图中,您将使用User.IsInRole("roleName")来确定他们是否在角色中并采取相应行动。

例如,以下是您只向管理员显示“管理用户”菜单项的方法:

@if(User.IsInRole("Admin"))
{
   <li><a href="/admin/users">Manage Users</a>
}

此外,在Users操作方法中,您将使用AuthorizeAttribute修饰它,以防止不属于“Admin”角色的用户访问该页面。

[Authorize(Roles("Admin"))]
public ActionResult Users()
{
   //...
}
相关问题