У меня есть этот простой код, который просматривает все приложения в Azman и все их роли. Это прекрасно работает, когда у меня нет пользователей, назначенных на роли. Но в тот момент, когда я назначаю пользователей (две роли имеют около 7000 пользователей), приложение зависает в коде foreach (IAzRole in _azApp.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();
}