C# 从客户端获取承载或授权结果?

C# 从客户端获取承载或授权结果?,c#,microsoft-graph-api,microsoft-graph-sdks,C#,Microsoft Graph Api,Microsoft Graph Sdks,我正在像这样实例化图形: public static async Task<GraphServiceClient> GetGraphClient(string clientId, string clientSecret, string tenantName) { AuthenticationResult authResult = await GetAuthenticationResult(tenantName, clientId, clientSecret);

我正在像这样实例化图形:

public static async Task<GraphServiceClient> GetGraphClient(string clientId, string clientSecret, string tenantName)
{
    AuthenticationResult authResult = await
       GetAuthenticationResult(tenantName, clientId, clientSecret);

    var client = new GraphServiceClient(new DelegateAuthenticationProvider(
        (requestMessage) =>
        {
            requestMessage.Headers
                .Add("Authorization", "Bearer " + authResult.AccessToken);
            return Task.FromResult(0);

        }));

    return client;
}
公共静态异步任务GetGraphClient(string clientId、string clientSecret、string tenantName)
{
AuthenticationResult authResult=等待
GetAuthenticationResult(租户名称、clientId、clientSecret);
var client=新的GraphServiceClient(新的DelegateAuthenticationProvider(
(请求消息)=>
{
requestMessage.Headers
.Add(“授权”、“承载人”+authResult.AccessToken);
返回Task.FromResult(0);
}));
返回客户;
}
我有另一种扩展方法,需要客户的持票人:

public static async Task<T> GetRESTResult<T>(this GraphServiceClient client, string url)
{
    HttpClient http = new HttpClient();

    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url);
    request.Headers.Authorization =
        new AuthenticationHeaderValue("Bearer", HERE????.AccessToken);
    HttpResponseMessage response = await http.SendAsync(request);
    var jsonStr = response.Content.ReadAsStringAsync();
    return JsonConvert.DeserializeObject<T>(jsonStr.Result);
}
公共静态异步任务GetResult(此GraphServiceClient客户端,字符串url)
{
HttpClient http=新的HttpClient();
HttpRequestMessage请求=新的HttpRequestMessage(HttpMethod.Get,url);
request.Headers.Authorization=
新的AuthenticationHeaderValue(“承载者”,此处为???.AccessToken);
HttpResponseMessage response=等待http.SendAsync(请求);
var jsonStr=response.Content.ReadAsStringAsync();
返回JsonConvert.DeserializeObject(jsonStr.Result);
}

如何从给定的客户端对象获取authresult/bearer

您应该:

公共静态异步任务GetResult(此GraphServiceClient客户端,字符串url)
{
//创建请求消息并添加内容。
HttpRequestMessage请求=新的HttpRequestMessage(HttpMethod.Get,url);
//验证(添加访问令牌)我们的HttpRequestMessage
等待client.AuthenticationProvider.AuthenticateRequestAsync(请求);
//发送请求并获得响应。
HttpResponseMessage response=等待客户端.HttpProvider.SendAsync(请求);
//处理响应
var jsonStr=response.Content.ReadAsStringAsync();
返回JsonConvert.DeserializeObject(jsonStr.Result);
}

您应该:

公共静态异步任务GetResult(此GraphServiceClient客户端,字符串url)
{
//创建请求消息并添加内容。
HttpRequestMessage请求=新的HttpRequestMessage(HttpMethod.Get,url);
//验证(添加访问令牌)我们的HttpRequestMessage
等待client.AuthenticationProvider.AuthenticateRequestAsync(请求);
//发送请求并获得响应。
HttpResponseMessage response=等待客户端.HttpProvider.SendAsync(请求);
//处理响应
var jsonStr=response.Content.ReadAsStringAsync();
返回JsonConvert.DeserializeObject(jsonStr.Result);
}

有道理。谢谢有道理。谢谢
public static async Task<T> GetRESTResult<T>(this GraphServiceClient client, string url)
{
    // Create the request message and add the content.
    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url);

    // Authenticate (add access token) our HttpRequestMessage
    await client.AuthenticationProvider.AuthenticateRequestAsync(request);

    // Send the request and get the response.
    HttpResponseMessage response = await client.HttpProvider.SendAsync(request);

    // Process the response
    var jsonStr = response.Content.ReadAsStringAsync();
    return JsonConvert.DeserializeObject<T>(jsonStr.Result);
}