ASP.NET MVC 3: Как получить роль пользователя в методе контроллера? - PullRequest
15 голосов
/ 20 мая 2011

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

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

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

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

EDIT:

Казалось, это хорошо сработало:

Roles.GetRolesForUser(User.Identity.Name)

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

Ответы [ 3 ]

23 голосов
/ 01 июня 2011
Roles.GetRolesForUser(User.Identity.Name)
13 голосов
/ 08 января 2013

Это можно сделать одним утверждением:

User.IsInRole("admin");
10 голосов
/ 11 декабря 2012

Если кому-то нужна эта информация, если у вашего пользователя много ролей, но вы ищете одну, вы можете сделать это: (я думал, id share)

@if (Request.IsAuthenticated)
{
   string[] roles = Roles.GetRolesForUser();
   foreach (string role in roles)
   {
       if (role.Contains("admin"))
       {
           <li>@Html.ActionLink("Administration", "Admin", "Movies")</li>
           break;
       }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...