Я пытаюсь добавить нескольких пользователей асинхронно с графиком AAD Вот так:
IUser user1 = ...;
IUser user2 = ...;
IUser user3 = ...;
List<Task> addTasks = new List<Task>();
addTasks.Add(activeDirectoryClient.Users.AddUserAsync(user1));
addTasks.Add(activeDirectoryClient.Users.AddUserAsync(user2));
addTasks.Add(activeDirectoryClient.Users.AddUserAsync(user3));
await Task.WhenAll(addTasks);
Я получаю это сообщение об ошибке:
{"odata.error": {"code": "Request_BadRequest", "message": {"lang": "en", "value": "Другой объект с таким же значением для свойства userPrincipalName уже существует."}, " values ": [{" item ":" PropertyName "," value ":" userPrincipalName "}, {" item ":" PropertyErrorCode "," value ":" ObjectConflict "}]}}
Если я использую этот код:
IUser user1 = ...;
IUser user2 = ...;
IUser user3 = ...;
List<Task> addTasks = new List<Task>();
await activeDirectoryClient.Users.AddUserAsync(user1);
await activeDirectoryClient.Users.AddUserAsync(user2);
await activeDirectoryClient.Users.AddUserAsync(user3);
Это хорошо работает.
Может быть, мы не можем добавить несколько пользователей в AAD одновременно?
РЕДАКТИРОВАТЬ Вот часть пользователей:
IUser newStudentUser = new User
{
DisplayName = $"Etudiant de l'école {school}",
UserPrincipalName = $"etudiant-{school}@........fr",
AccountEnabled = true,
MailNickname = $"Etudiant {school}",
UsageLocation = "US",
PasswordProfile = new PasswordProfile
{
Password = "......."
}
};
IUser newTeacherUser = new User
{
DisplayName = $"Professeur de l'école {school}",
UserPrincipalName = $"professeur-{school}@........fr",
AccountEnabled = true,
MailNickname = $"Professeur {school}",
UsageLocation = "US",
PasswordProfile = new PasswordProfile
{
Password = "......."
}
};
IUser newDirectorUser = new User
{
DisplayName = $"Directeur de l'école {school}",
UserPrincipalName = $"directeur-{school}@........fr",
AccountEnabled = true,
MailNickname = $"Directeur {school}",
UsageLocation = "US",
PasswordProfile = new PasswordProfile
{
Password = "......."
}
};
...
содержат код, в котором некоторые объекты оказались общими для всех 3user
переменных, и поэтому установка значения для одной из них устанавливает одинаковое значение для всех 3 независимых переменных. Я бы подумал, что это более вероятно. Не могу подтвердить, так как вы пропустили этот код. - person Damien_The_Unbeliever   schedule 15.04.2016await ...; await ...; await ...;
- person trenoncourt   schedule 15.04.2016