Asp.net core mvc 检索GraphServiceClient.Me数据时获取请求\u ResourceNotFound错误

Asp.net core mvc 检索GraphServiceClient.Me数据时获取请求\u ResourceNotFound错误,asp.net-core-mvc,microsoft-graph-api,Asp.net Core Mvc,Microsoft Graph Api,我有一个ASP.NET核心应用程序,具有Visual Studio 2015 Update 3配置的工作和学校帐户身份验证。我正在尝试将Microsoft.Graph与我的应用程序集成。具体来说,我正试图从当前登录的用户那里获取用户信息(姓名、部门、邮件、关于我的信息等) 根据ASP.NET MVC以前版本的示例,我成功地使以下代码正常工作 var token = await GetAppTokenAsync(authStringMicrosoft, graphResourceId); var

我有一个ASP.NET核心应用程序,具有Visual Studio 2015 Update 3配置的工作和学校帐户身份验证。我正在尝试将Microsoft.Graph与我的应用程序集成。具体来说,我正试图从当前登录的用户那里获取用户信息(姓名、部门、邮件、关于我的信息等)

根据ASP.NET MVC以前版本的示例,我成功地使以下代码正常工作

var token = await GetAppTokenAsync(authStringMicrosoft, graphResourceId);
var authHelper = new AuthenticationHelper() { AccessToken = token };
var graphClient = new GraphServiceClient(authHelper);

var users1 = await graphClient.Users.Request().GetAsync();
var users2 = await graphClient.Users.Request().Select("mail,givenName,surname").GetAsync();
这段代码放在我的启动类的OpenIdConnectOptions中OpenIdConnectEvents的OnTokenValidated回调中

app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions {
    // ...
    Events = new OpenIdConnectEvents {                    
        OnTokenValidated = async ctx => {
           // right here
        }
    }
});
到目前为止,对用户的两个调用都非常有效,代码为我检索具有指定属性的用户列表。但是,无论何时尝试从Me属性获取数据,都会出现错误,如下所述

User me = await graphClient.Me.Request().GetAsync();
错误:

Code: Request_ResourceNotFound
Message: Resource '65c4885a-b493-4b8d-861f-79f0b8c23ec4' does not exist 
         or one of its queried reference-property objects are not present.

Inner error
我不明白为什么我会犯这个错误。我已在Azure管理门户中检查了应用程序的权限,包括Microsoft Azure Active Directory和Microsoft Graph应用程序的权限。作为测试,我检查了所有要检查的内容,但仍然得到这个错误

所以,我的问题是:为什么我会出现这个错误?我是否需要添加其他权限,是否需要包括其他内容


先谢谢你

从示例代码来看,这里似乎使用了app-token/me请求在使用应用令牌(由客户端\u凭据流获得)的上下文中无效。它仅在授权码流(也称为三腿流)获得的访问令牌上下文中有效。如果您可以共享错误响应中的请求id头和时间戳,我可以确认。

您好,Sriram,谢谢您的回复。让我得到你建议的信息,我会回复你的。但是,如果我理解正确的话,对于client_凭证流,我必须搜索特定的用户,对吗?谢谢Sriram,你是正确的。我正在使用应用程序令牌身份验证。我通过直接查询用户生成器来获取用户信息。