使用Active Directory客户端库

时间:2018-05-29 06:56:21

标签: azure azure-active-directory azure-ad-b2c azure-ad-graph-api

我通过objectId和principalname找到了GET用户的链接。

价: Announcing Azure AD Graph API Client Library 2.0

我有一个用例,比如在AD中创建用户之前我想检查电子邮件地址是否已经存在。

当用户已经在那里时,我得到了这个例外:

{"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Another object with the same value for property signInNames already exists."},"date":"2018-05-29T06:54:41","requestId":"9ac7e678-7426-4dfd-9aa5-89c24038b9e0","values":[{"item":"PropertyName","value":"signInNames"},{"item":"PropertyErrorCode","value":"ObjectConflict"}]}}

那么,在创建用户之前是否有任何简单的选项来检查emailaddress存在?

在尝试使用Martin发布的答案时得到以下异常 enter image description here

2 个答案:

答案 0 :(得分:1)

您可以执行查询以检查具有该登录名的用户是否存在:

Client.Users.Where(u => u.SignInNames.Any(x => x.Type == "emailAddress" && x.Value == YourEmail@yourdomain.com)).ExecuteSingleAsync()

如果您使用AAD B2C,则必须省略SignInNames的类型检查。

答案 1 :(得分:1)

我已尝试使用下面的查询,但它运行正常。

Client.Users.Where(u => u.SignInNames.Any(x => x.Value == "YourEmail@yourdomain.com")).ExecuteSingleAsync();

感谢@Martin Brandl