C# 获取当前用户的详细信息

C# 获取当前用户的详细信息,c#,microsoft-graph-api,microsoft-graph-sdks,C#,Microsoft Graph Api,Microsoft Graph Sdks,我正在使用.netcore和C应用程序,在那里我集成了Azure广告认证。这意味着任何Azure AD用户都可以登录到此应用程序。现在在某处,我想显示当前登录用户的城市、州、国家和其他一些字段值。为此,我使用了,但我无法成功获得详细信息。我收到一个错误请求\u ResourceNotFound。我使用下面的c35;code来获取当前登录用户的数据 var clientId = "<CLIENT_ID>"; // I have used my application client id

我正在使用
.netcore
C
应用程序,在那里我集成了Azure广告认证。这意味着任何Azure AD用户都可以登录到此应用程序。现在在某处,我想显示当前登录用户的城市、州、国家和其他一些字段值。为此,我使用了,但我无法成功获得详细信息。我收到一个错误
请求\u ResourceNotFound
。我使用下面的
c35;
code来获取当前登录用户的数据

var clientId = "<CLIENT_ID>"; // I have used my application client id here
var secret = "<CLIENT_SECRET>"; // I have used my client secret here
var domain = "<DOMAIN>"; // I have used domain here
var credentials = new ClientCredential(clientId, secret);
var authContext = new AuthenticationContext($"https://login.microsoftonline.com/{domain}/");
var token = await authContext.AcquireTokenAsync("https://graph.microsoft.com/", credentials);

var graphServiceClient = new GraphServiceClient(new DelegateAuthenticationProvider((requestMessage) =>
{
    requestMessage
        .Headers
        .Authorization = new AuthenticationHeaderValue("bearer", token.AccessToken);

    return Task.CompletedTask;
}));

var user = await graphServiceClient
    .Me
    .Request()
    .GetAsync(); // Error at this line
var clientId=”“;//我在这里使用了我的应用程序客户端id
var secret=“”;//我在这里使用了我客户的秘密
var domain=“”;//我在这里用过域名
var-credentials=新的ClientCredential(clientId,secret);
var authContext=新的AuthenticationContext($”https://login.microsoftonline.com/{domain}/”;
var token=await authContext.AcquireTokenAsync(“https://graph.microsoft.com/“、全权证书);
var graphServiceClient=新graphServiceClient(新DelegateAuthenticationProvider)((requestMessage)=>
{
请求消息
.标题
.Authorization=新的AuthenticationHeaderValue(“承载者”,token.AccessToken);
返回Task.CompletedTask;
}));
var user=await graphServiceClient
我
.Request()
.GetAsync();//这一行有错误
但是当我使用
graphServiceClient.Me.Request().GetAsync()时,它抛出了一个如下错误

错误:代码:Request\u ResourceNotFound

消息:资源“XXXX-XXXX-XXX-XXXX”不存在或其查询的引用属性对象之一不存在


如果有人之前遇到过此类错误,有人能建议如何使用C#中的Microsoft Graph获取当前登录用户的数据吗?

您使用的是客户端凭据,因此没有“当前登录用户”。它实际上是客户端凭据的整个点,在没有用户的情况下对应用程序进行身份验证

使用客户端凭据时,需要明确指定用户
id
userPrincipalName

var user = await graphServiceClient
    .Users["alias@domain.onmicrosoft.com"]
    .Request()
    .GetAsync(); 

如果您获得具有客户端凭据的令牌,则不存在“我”。没有用户参与。您需要按id或用户主体名称获取用户。@juunas谢谢您的快速回复,您能否共享一些代码片段以使用Graph API按id获取用户?