Muszę sprawdzić wszystkie role dla użytkownika. Obecnie sprawdzam isinrole. ale chcę znaleźć wszystkie role. Aby ukryć, pokaż niektóre dane.
if (Context.User.IsInRole("Travel_Admin"))
{
visibleTables.Remove(item_level10);
visibleTables.Add(item_level1);
visibleTables.Add(item_level2);
visibleTables.Add(item_level3);
visibleTables.Add(item_level4);
visibleTables.Add(item_level5);
}
else
{
visibleTables.Remove(item_level1);
visibleTables.Remove(item_level2);
visibleTables.Remove(item_level3);
visibleTables.Remove(item_level4);
visibleTables.Remove(item_level5);
visibleTables.Remove(item_level12);
visibleTables.Remove(item_level10);
}
Muszę znaleźć wszystkie role w pliku context.user dla tego konkretnego użytkownika. Uwaga: Jestem początkującym w uwierzytelnianiu opartym na rolach.
Odpowiedzi:
2 dla odpowiedzi № 1Jeśli potrzebujesz znaleźć wszystkie role swojego użytkownika, skorzystaj z:
Roles.GetRolesForUser()
Da ci tablicę ciągów wszystkich jej ról. Możesz określić użytkownika dla mtehod.
Możesz go użyć w następujący sposób:
foreach(string role in Roles.GetRolesForUser())
{
// do treatment for this role of the user
}
Zobacz dokument tutaj dla tej metody: http://msdn.microsoft.com/en-us/library/system.web.security.roles.getrolesforuser.aspx
W rozwiązaniu MX2 przeglądasz wszystkie zdefiniowane typy ról, nie tylko te role użytkowników!
Metody odnajdywania ról można znaleźć tutaj w witrynie MSDN: http://msdn.microsoft.com/en-us/library/System.Web.Security.Roles_methods.aspx
0 dla odpowiedzi nr 2
Spróbuj tego:
foreach (var item in Roles.GetAllRoles())
{
if(Context.User.IsInRole(item))
{
//code
}
else
{
//code
}
}