我无法弄清楚此调用实际返回的内容以及如何将其显示为 HTML 中的img
标签。当我使用联机 Microsoft 图形资源管理器测试环境使用相同的 URI 时,我按预期获取图像。
var requestUri =
"https://graph.microsoft.com/v1.0/barfoo.onmicrosoft.com/users/xxxxx-xxxxxx-xxxxx/photo/$value";
var request =
new HttpRequestMessage(HttpMethod.Get, requestUri);
var accessToken =
await _authenticationHelper.GetAccessTokenAsync();
request.Headers.Authorization =
new AuthenticationHeaderValue("Bearer", accessToken);
var response = await client.SendAsync(request);
>HttpClient
可以给你一个Stream
的响应。
在 ASP.NET Core中,我已经完成了此操作:
[HttpGet]
public async Task<IActionResult> ProfilePhoto()
{
//removed all the code which you already have
HttpResponseMessage res = await client.SendAsync(request);
return File(await res.Content.ReadAsStreamAsync(), "image/jpeg");
}
MVC ASP.NET"经典"应该非常相同,您至少会用 ActionResult
替换IActionResult
。
然后,您可以将其链接到图像标记,例如:
<img src="/Home/ProfilePhoto"/>
获得用户照片响应后,您应该能够按照以下行渲染图像: src="data:image/jpeg;base64,{{ user.profilePic }}">