1

我必须检查用户的所有角色。目前我正在检查 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 中为该特定用户找到所有角色。注意:我是基于角色的身份验证的初学者。

4

2 回答 2

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

于 2014-01-23T10:18:37.647 回答
0

尝试这个:

 foreach (var item in Roles.GetAllRoles())
 {
      if(Context.User.IsInRole(item))
      {
            //code
      }
      else
      {
            //code
      }
 }
于 2014-01-23T09:57:13.573 回答