/ / ASP.NET MVC 3: Como obter a função do usuário em um método de controlador? - asp.net-mvc-3, asp.net-membership, autorização, asp.net-4.0

ASP.NET MVC 3: Como obter a função do usuário em um método de controle? - asp.net-mvc-3, asp.net-membership, autorização, asp.net-4.0

Eu quero ser capaz de

  1. Obtenha uma lista de funções do usuário autenticado atual.
  2. Filtrar os dados fornecidos para esse usuário com base em sua função.

Eu vejo maneiras de verificar se o usuário está em umUm papel específico, mas eu não me importo com o papel que eles participam. O banco de dados saberá quais funções têm permissão para ver quais dados. Eu preciso enviar uma coleção dessas funções para o serviço de dados para filtrar os dados com base nessas funções.

Então, primeiro passo é como eu obtenho todas as funções associadas ao usuário atual em um método controlador?

EDITAR:

Isso pareceu funcionar bem:

Roles.GetRolesForUser(User.Identity.Name)

Respostas de apoio ainda são bem vindas.

Respostas:

22 para resposta № 1
Roles.GetRolesForUser(User.Identity.Name)

11 para resposta № 2

Isso pode ser feito com uma única declaração:

User.IsInRole("admin");

10 para resposta № 3

Se alguém precisar dessa informação, caso seu usuário tenha muitas funções, mas você estiver procurando por uma, você pode fazer isso: (eu pensei em compartilhar)

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