Je suis en train d'ajouter plusieurs utilisateurs async avec graphique DAA Comme ceci:traitement par lots: userPrincipalName existe déjà lorsque vous essayez d'ajouter plusieurs utilisateurs Async DAA
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);
Je reçois ce message d'erreur:
{"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Another object with the same value for property userPrincipalName already exists."},"values":[{"item":"PropertyName","value":"userPrincipalName"},{"item":"PropertyErrorCode","value":"ObjectConflict"}]}}
Si j'utilise ce code:
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);
cela fonctionne bien.
Peut-être que nous ne pouvons pas ajouter plusieurs utilisateurs dans AAD en même temps?
EDIT Voici la partie des utilisateurs:
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 = "......."
}
};
Peut-être que votre '...' s contiennent du code où certains objets ont fini par partager entre les 3 ' variables de l'utilisateur et donc la définition d'une valeur sur un paramètre la même valeur pour toutes les 3 variables "indépendantes". J'aurais pensé que c'était beaucoup plus probable. Vous ne pouvez pas confirmer depuis que vous avez élidé ce code. –
J'ai ajouté la partie création d'utilisateurs. Mais je ne pense pas que ça puisse être parce que ça marche avec le 'wait ...; attendre ... wait ...; 'méthode – trenoncourt
Pouvez-vous renommer votre question afin qu'elle puisse être liée au traitement par lots? – Thomas