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);
}