使用 Microsoft Graph API 通过电子邮件地址获取用户

问题描述 投票:0回答:2

我正在尝试获取用户是否存在于 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 权限 enter image description here

这是我配置时的代码

services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
            .AddMicrosoftIdentityWebApp(Configuration)
            .AddMicrosoftGraph(Configuration.GetSection("GraphApi"))
            .AddInMemoryTokenCaches();

无法弄清楚我还缺少什么。

c# asp.net-core azure-active-directory microsoft-graph-api microsoft-graph-sdks
2个回答
0
投票

终于我明白了,

我必须用它来通过电子邮件地址获取用户

var result = await _graphServiceClient.Users[userEmail].GetAsync();

0
投票

我的要求是一样的,上面的代码在响应中返回resource_notfound,你能帮我通过电子邮件获取用户吗?

© www.soinside.com 2019 - 2024. All rights reserved.