我有不同角色的用户。我想根据用户的角色提供受限制的视图。我的代码中有一些东西可以检查角色:
bool isAdmin = UserManager.IsInRole(currentUser.Id,"admin");
bool isEmployee = UserManager.IsInRole(currentUser.Id,"employee");
要使上面的代码工作,我需要实例化currentUser。换句话说,我需要捕获登录的当前用户的信息。我尝试了var user = User.Identity.GetUserId();
等许多其他但无法找到工作代码的信息。我将不胜感激任何帮助。谢谢!
更新
这是我完整的方法代码。你们可能想看看,直到我检查上面的例子。
public ActionResult Index()
{
var user = User.Identity.GetUserId();
bool isAdmin = UserManager.IsInRole(user, "admin");
bool isEmployee = UserManager.IsInRole(user, "employee");
if (isAdmin)
{
return View(db.Customers.ToList());
}
else
{
var restricted = db.Customers.Where(c => c.FirstName == "John");
return View(restricted);
}
}
答案 0 :(得分:3)
[Authorize]
属性应该在所需的受限actionAtroller方法中实现。示例如下。
[Authorize(Roles="Admin")]
public ActionResult Index()
{
return View();
}
此控制器方法仅限于具有角色管理员的用户。此外,可以使用不同的授权标记将相同的动作控制器方法包括两次。
答案 1 :(得分:1)
我以某种方式想出了解决方案。这是工作代码。
if(User.IsInRole("Admin"))
{
return View(db.Customers.ToList());
}
else
{
return View(db.MyUserInfo.ToList());
}