c# - 如何使用 Azure Active Directory Graph Client 在 Azure B2C 中查找具有相同用户名\电子邮件地址的所有用户?
问题描述
B2C Azure AD 的用户具有相同的电子邮件地址,例如“someuser@gmail.com”。
User name User type Source
someuser@gmail.com Member Azure Active Directory
someuser@gmail.com Member Microsoft Account
someuser@gmail.com Member Facebook
请注意,不同的是Source列。电子邮件是一样的。
现在,当我进行这样的搜索时:
GET https://graph.windows.net/myb2ctenant.onmicrosoft.com/users?api-version=1.6&$filter=signInNames/any(x:x/value%20eq%20%27someuser@gmail.com%27)
我只得到一行:源 = Azure Active Directory 的一行,但没有来自外部身份提供程序 (IDP) 的其他 2 行。
如何一次性检索与此用户名\电子邮件地址匹配的 3 行?
一旦我得到这 3 个用户,我想删除它们。
####### 编辑 #######
从 Chris Padget的回答中,我可以得到拥有 Facebook 作为发行人的用户,如下所示:
Get-User $filter=userIdentities/any(x:x/issuer%20eq%20%27facebook.com%27)
解决方案
在摆弄了这个$filter
选项之后,我让它像这样一次性工作:
Get-User $filter=signInNames/any(x:x/value%20eq%20%27someuser@gmail.com%27)%20or%20otherMails/any(y:y%20eq%20%27someuser@gmail.com%27)
对于外部身份提供者,我们需要检查otherMails
属性。
#######
注意:必须对电子邮件地址进行编码。我刚刚$filter
使用带有电子邮件地址的 C# 代码对此进行了测试someuser+1@gmail.com
,但它没有检索用户。那是因为+
符号。
我们可以使用HttpUtility.UrlEncode(email)
.
更多信息在这里。
推荐阅读
- html - 如何将图像(数量可变)彼此相对放置,并相应地缩放它们所在的超大屏幕?姜戈
- segmentation-fault - Lium SpkDiarization 文件输出
- android - Android:app:layout_constrainedHeight 剪切文本视图中的最后一行文本
- android - 如何让我的应用出现在 Play 商店中?
- asp.net-core - 在 ASP.NET Web API Core 中,如何强制 401 响应
- r - 将 df 列除以 R 中的同一列,但保持 df.column.names
- sql-server - 循环结果集并作为存储过程的一部分执行插入语句
- eclipse - 运行测试时的 Eclipse JUnit 5 SecruityException
- amazon-web-services - 如何有条件地引发 Alexa 多轮对话
- css - 有没有办法只使用 CSS 从容器中的特定项目到最后一个项目中选择项目?