我必须检查用户的所有角色。当前我正在检查isinrole。 但我想找到所有的角色。隐藏显示一些数据。
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);
}
我需要在context.user中找到该特定用户的所有角色。 注意:我是基于角色的身份验证的初学者。
答案 0 :(得分:2)
如果您需要查找用户的所有角色,请使用以下命令:
Roles.GetRolesForUser()
它将为您提供其所有角色的字符串数组。您可以为mtehod指定用户。
您可以在以下方法中使用它:
foreach(string role in Roles.GetRolesForUser())
{
// do treatment for this role of the user
}
有关此方法,请参阅此处的文档:http://msdn.microsoft.com/en-us/library/system.web.security.roles.getrolesforuser.aspx
在MX2解决方案中,您可以浏览定义的所有类型的角色,而不仅仅是此用户角色!
您可以在MSDN中找到角色方法:http://msdn.microsoft.com/en-us/library/System.Web.Security.Roles_methods.aspx
答案 1 :(得分:0)
试试这个:
foreach (var item in Roles.GetAllRoles())
{
if(Context.User.IsInRole(item))
{
//code
}
else
{
//code
}
}