我有这个简单的代码,它遍历 Azman 中的所有应用程序及其所有角色。当我没有分配给角色的用户时,它工作得很好。但是在我分配用户的那一刻(其中 2 个角色有 7000 个用户),该应用程序在 foreach(_azApp.Roles 中的 IAzRole)代码中挂起......基本上在您访问 Roles 集合的那一刻,它就挂起并且需要大约 40 分钟来出它。这是完全不能接受的。谁能指出我的解决方案?我想要的只是角色分配名称列表,为什么角色分配会减慢速度……?
PS:我所有的用户都在 ADAM 中,Azman 商店也在 ADAM 中。我也尝试过遍历 IAzTasks (roledefinition=1),但这也很慢。
public override string[] GetAllRoles()
{
List<string> rolesList = new List<string>();
foreach (IAzApplication2 _azApp in AZManStore.Applications)
{
foreach (IAzRole role in _azApp.Roles)
{
//Weird that Roles are retrieved using tasks collection
if (!rolesList.Exists(delegate(string x) { return x == role.Name; }))
rolesList.Add(role.Name);
}
}
return rolesList.ToArray();
}