有没有办法使用AuthorizeAttribute来限制用户类型的访问?我有一个管理员登录和一个实习生登录。
截至目前,这两个登录都会显示我的管理页面上的所有标签。我想要的是限制实习生登录看到的标签数量。
我可以使用AuthorizeAttribute来做到这一点吗?请指教。
非常感谢
答案 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()
{
//...
}