ASP.NET MVC 3:如何在控制器方法中获得用户的角色?

Zac*_*ott 15 authorization asp.net-membership asp.net-4.0 asp.net-mvc-3

我希望能够

  1. 获取当前经过身份验证的用户的角色列表.
  2. 根据角色过滤提供给该用户的数据.

我看到了检查用户是否处于特定角色的方法,但我不关心他们参与的角色.数据库将知道允许哪些角色查看哪些数据.我需要向数据服务提交这些角色的集合,以根据这些角色过滤数据.

那么第一步是如何在控制器方法中获得与当前用户关联的所有角色?

编辑:

这似乎很好地解决了:

Roles.GetRolesForUser(User.Identity.Name)
Run Code Online (Sandbox Code Playgroud)

支持答案仍然欢迎.

Zac*_*ott 23

Roles.GetRolesForUser(User.Identity.Name)
Run Code Online (Sandbox Code Playgroud)

  • 当有人来搜索时,有人最好回答他们自己的问题而没有明确定义的答案.谢谢你这样做. (13认同)
  • 嗯,它永远存在,所以我可以删除它,或者回答它.:) (6认同)

小智 13

这可以通过一个语句完成:

User.IsInRole("admin");
Run Code Online (Sandbox Code Playgroud)


Sop*_*hie 10

如果有人需要这些信息,如果你的用户有很多角色,但你正在寻找一个,你可以这样做:(我认为id分享)

@if (Request.IsAuthenticated)
{
   string[] roles = Roles.GetRolesForUser();
   foreach (string role in roles)
   {
       if (role.Contains("admin"))
       {
           <li>@Html.ActionLink("Administration", "Admin", "Movies")</li>
           break;
       }
   }
}
Run Code Online (Sandbox Code Playgroud)