ASP.NET MVC 3: Как получить роль пользователя в методе контроллера?

Я хочу иметь возможность

  • Получить список ролей текущего аутентифицированного пользователя.
  • Отфильтруйте данные, предоставленные этому пользователю, в зависимости от их роли.

Я вижу способы проверить, имеет ли пользователь определенную роль, но мне все равно, какую роль они участвуют. База данных будет знать, какие роли разрешены для просмотра данных. Мне нужно отправить коллекцию этих ролей службе данных для фильтрации данных на основе этих ролей.

Итак, первый шаг - как мне получить все роли, связанные с текущим пользователем в методе контроллера?

EDIT:

Это выглядело прекрасно:

Roles.GetRolesForUser(User.Identity.Name)

Поддержка ответов по-прежнему приветствуется.

Ответы

Ответ 1

Roles.GetRolesForUser(User.Identity.Name)

Ответ 2

Это можно сделать с помощью одного оператора:

User.IsInRole("admin");

Ответ 3

Если кому-то нужна эта информация, если у вашего пользователя много ролей, но вы ее ищете, вы можете сделать это: (я думал, что доля 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;
       }
   }
}