我正在尝试获取用户是否存在于 Azure AD 中(使用电子邮件地址)或不使用 Microsoft Graph API(版本 5.17.0)的信息。
var myself = await _graphServiceClient.Me.GetAsync(); // This Code Works
var user = await _graphServiceClient.Users.GetAsync(c =>
{
c.QueryParameters.Select = new[] { "mail" };
c.QueryParameters.Top = 1;
c.QueryParameters.Filter = $"mail eq {userEmail}";
})!.Value?.FirstOrDefault(); // This doesn't work
我抛出了“Microsoft.Graph.Models.ODataErrors.ODataError”类型的异常。
这是我在 appsettings.json 中的设置
"GraphApi": {
"BaseUrl": "https://graph.microsoft.com/v1.0",
"Scopes": "User.Read.All"
}
此外,我已在 Azure 门户上授予 Users.Read.All 权限
这是我配置时的代码
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(Configuration)
.AddMicrosoftGraph(Configuration.GetSection("GraphApi"))
.AddInMemoryTokenCaches();
无法弄清楚我还缺少什么。
终于我明白了,
我必须用它来通过电子邮件地址获取用户
var result = await _graphServiceClient.Users[userEmail].GetAsync();
我的要求是一样的,上面的代码在响应中返回resource_notfound,你能帮我通过电子邮件获取用户吗?