/ / Znajdź wszystkie role w pliku context.user - c #, asp.net, sprawdzanie poprawności, uwierzytelnianie, role zabezpieczeń

Znajdź wszystkie role w pliku context.user - c #, asp.net, sprawdzanie poprawności, uwierzytelnianie, role zabezpieczeń

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 № 1

Jeś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
}
}