/ / ASP.NET MVC 3: Jak uzyskać rolę użytkownika w metodzie sterownika? - asp.net-mvc-3, członkostwo asp.net, autoryzacja, asp.net-4.0

ASP.NET MVC 3: Jak uzyskać rolę użytkownika w metodzie sterownika? - asp.net-mvc-3, członkostwo asp.net, autoryzacja, asp.net-4.0

chcę być w stanie

  1. Uzyskaj listę ról bieżącego uwierzytelnionego użytkownika.
  2. Filtruj dane dostarczone temu użytkownikowi na podstawie ich roli.

Widzę sposoby sprawdzenia, czy użytkownik jest wszczególną rolę, ale nie dbam o to, jaką rolę w nich biorą, baza danych wie, jakie role mogą zobaczyć dane. Muszę przesłać kolekcję tych ról do usługi danych, aby filtrować dane na podstawie tych ról.

Pierwszym krokiem jest zatem, w jaki sposób uzyskać wszystkie role związane z bieżącym użytkownikiem w metodzie sterownika?

EDYTOWAĆ:

Wydaje się, że to ładnie działa:

Roles.GetRolesForUser(User.Identity.Name)

Wspieranie odpowiedzi nadal jest mile widziane.

Odpowiedzi:

22 dla odpowiedzi nr 1
Roles.GetRolesForUser(User.Identity.Name)

11 dla odpowiedzi nr 2

Można to zrobić za pomocą pojedynczej instrukcji:

User.IsInRole("admin");

10 dla odpowiedzi nr 3

Jeśli ktoś potrzebuje tych informacji, na wypadek, gdyby twój użytkownik miał wiele ról, ale go szukasz, możesz to zrobić: (myślałem, że udostępniam)

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