- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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":"Another object with the same value for property userPrincipalName already exists."},"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 = "......."
}
};
最佳答案
就您而言,您希望批量创建多个用户。
目前,GraphClient确实支持批处理,但有一些限制( Batch processing | Graph API concepts ):
因此,在您的情况下您无法批量创建超过 5 个用户。
向 Graph API 客户端添加实体时,您可以选择使用 deferredSave
参数推迟查询的执行。
await activeDirectoryClient.Users.AddUserAsync(user, deferredSave: true);
Graph API 客户端有一个跟踪更改的 DataServiceContextWrapper
。它提供了一个SaveChanges(Async)
方法。
await activeDirectoryClient.Context.SaveChangesAsync();
调用此方法您可以指定 SaveChangesOptions :
现在您有足够的信息来编写代码来批量创建用户:
// Only 5 users per batch !!!!
var user1 = ...;
var user2 = ...;
var user3 = ...;
await activeDirectoryClient.Users.AddUserAsync(newStudentUser, deferredSave: true);
await activeDirectoryClient.Users.AddUserAsync(newTeacherUser, deferredSave: true);
await activeDirectoryClient.Users.AddUserAsync(newDirectorUser, deferredSave: true);
// In debug mode, you should use the SaveChangesAsync method with the default options
// Becasue the BatchWithIndependentOperations will not throw any exception even if there is a problem while creating the user.
//await activeDirectoryClient.Context.SaveChangesAsync();
await activeDirectoryClient.Context
.SaveChangesAsync(SaveChangesOptions.BatchWithIndependentOperations);
关于c# - 批处理: userPrincipalName already exists when trying to add multiple users async in AAD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36644354/
我和我的团队正在开发一个相当大的应用程序,其中包含许多基于 WCF NetTCP 的服务。此系统将在其下运行的 Windows 服务不是本地帐户,而是标准域用户(在托管服务的服务器上具有管理员权限)。
我有一个以下格式的 csv 文件 Userprincipalname [email protected] [email protected] [email protected] joseph.nkwa
我创建了具有wsHttpBinding和Message安全性的WCF服务。然后,我添加了一个服务引用,该引用导致使用以下命令更新客户端的配置文件:
我有一个用户安全标识符列表,我需要获取一个 userPrincipalName 列表...有没有什么方法可以在不加载用户 DirectoryEntry 并拉入 userPrincipalName 属性
我们围绕 LDAP 对客户端进行了新的增强,以使用 userPrincipalName 启用登录。 .他早些时候使用 sAMAccountName用于登录。当用户尝试在他的测试环境中测试应用程序时,他
我设置了openLdap服务器实例。 暂时登录需要提供用户名作为用户名 dn ,例如 "cn=151test,cn=somecn,ou=someou,dc=mydomain,dc=com" 如何使用
每当我尝试将 UserPrincipal 保存到 Active Directory 并且 UserPrincipalName 或 EmailAddress 长度超过 20 个字符时, UserPrin
是否有任何方法可以从 UserPrincipalName 长度超过 20 个字符的 C# 代码创建 AD 用户帐户? 我试着用 userPrincipal.UserPrincipalName = us
我正在编写一个链接到 Active Directory 的应用程序,我需要将 userPrincipalName 存储在数据库表中,但我不知道该字段需要多大。 On MSDN ,没有给出长度,也没有给
我使用 Azure AD B2C 和内置电子邮件提供程序进行身份验证。现在我想返回用户的电子邮件,但显然电子邮件提供商只是使用电子邮件作为用户主体名称并将电子邮件字段留空。 好的。因此,当我尝试使用
我仍在学习 LDAP/Active Directory,因此如果我的术语有任何错误,请纠正我:) 在我们的 Java Web 应用程序中,我尝试使用 Spring Security LDAP 来保护它
当我们使用 Graph API 在 Active Directory 中创建用户时,一些字符会附加到用户名 (#EXT#)。这使得无法在 AD B2C 界面 ( documented problem
我正在使用 ADFS 实现 SP 发起的 SSO。我向 ADFS 提交 SAMLRequest,验证 SAMLRequest 后,ADFS 使用 SAMLResponse 进行响应。 在 ADFS 中
调用其中一个报告端点时,例如 https://graph.microsoft.com/beta/reports/getTeamsUserActivityUserDetail(period= 'D7')
我正在尝试使用 AAD 图表异步添加多个用户,如下所示: IUser user1 = ...; IUser user2 = ...; IUser user3 = ...; List addTasks
全部, 我们的 IT 部门决定更改 AD 中用户的后缀,将不同的后缀添加到 AD 中的 userPrincipalName 中,以适应实际使用的域。 例如我们的域名是 xxx.com,但 userPr
我是一名优秀的程序员,十分优秀!