C# Azure AD B2C.Net SDK-通过电子邮件检索用户
我正在尝试使用中描述的和筛选器,通过在Azure AD B2C租户上的登录电子邮件查找用户,如下所示:C# Azure AD B2C.Net SDK-通过电子邮件检索用户,c#,.net-core,azure-active-directory,azure-ad-b2c,azure-ad-graph-api,C#,.net Core,Azure Active Directory,Azure Ad B2c,Azure Ad Graph Api,我正在尝试使用中描述的和筛选器,通过在Azure AD B2C租户上的登录电子邮件查找用户,如下所示: private async Task<User> GetB2CUserByEmail(string email) { IGraphServiceUsersCollectionPage collectionPage = await this.GraphServiceClient.Users .Re
private async Task<User> GetB2CUserByEmail(string email)
{
IGraphServiceUsersCollectionPage collectionPage = await this.GraphServiceClient.Users
.Request()
.Filter($"signInNames/any(c:c/value eq '{email}')")
.Select(this.UserSelectValue)
.GetAsync();
if (collectionPage == null || collectionPage.Count == 0)
{
return null;
}
return collectionPage[0];
}
其中this.UserSelectValue
是一个属性选择列表,如“id,givenName…”
。我已经确认这不是问题所在,因为我们有一个类似的工作方法,通过扩展属性查找用户;唯一的区别是.Filter()
参数
我怎样才能做到这一点?谢谢。中没有
signInNames
属性。这就是你得到这个错误的原因
您应该使用.Filter(“标识/any(c:c/issuerasignedid eq'{email}'和c/issuer eq'{email}')”)
查看官方样本的详细信息。这就成功了!女士,如果你正在阅读……我至少遇到了这个问题的三种不同变体。在B2CSDK文档中,应该更容易发现当前正确的方法。
Microsoft.Graph.ServiceException : Code: BadRequest
Message: Filter not supported.