我正在开发一个ASP .Net Core 1.1 MVC Web应用程序,它使用“授权代码授权流程”调用Web API。我正在使用Auth0作为认证服务器。在控制器中检索访问令牌
继Auth0教程之后,用户已成功登录到Web应用程序,现在做了一些使Web应用程序在Web API上调用的东西,它说我应该获得访问令牌,如下所示:
public async Task<IActionResult> Index()
{
string accessToken = User.Claims.FirstOrDefault("access_token")?.Value;
if (accessToken == "")
return View("Error");
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
HttpResponseMessage responseMessage = await client.GetAsync(inspectionsUrl);
if (responseMessage.IsSuccessStatusCode)
{
var responseData = responseMessage.Content.ReadAsStringAsync().Result;
List<Inspection> inspections = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Inspection>>(responseData);
return View(inspections);
}
return View("Error");
}
然而,这还不编译,给予以下
Argument 2: cannot convert from 'string' to 'System.Func <System.Security.Claims.Claim, bool>'
任何想法?
感谢juunas!这就是诀窍!不幸的是,返回的“accessToken”为null,但这对我来说是一个尝试 - 至少现在编译! :) – user1900799