我想根据MVC C#中的用户角色控制视图

时间:2017-12-22 20:47:40

标签: c# .net

我想根据用户角色控制我的操作中的视图。角色存储在数据库中,我已覆盖我的AuthorizeCore以根据有权访问视图的人返回true或false。我需要知道控制器中的userRole

如何确定当前用户的角色?

[Authorize]
public ActionResult Index() {

if (userRole = "Admin") { return View("Admin");}
else {return View("Viewer");
}

1 个答案:

答案 0 :(得分:1)

假设您的控制器扩展System.Web.Mvc.Controller,那么您可以访问基类的User属性。这将为经过身份验证的用户提供IPrincipal个实例,其中包含.IsInRole(string role)

public ActionResult Index() {

    if (User.IsInRole("Admin")) { return View("Admin");}
    else {return View("Viewer");
}

注意:如果您配置的角色提供程序没有自动支持使用.IsInRole,您可以使用User.Identity.Name

实现自己的数据库查找