【发布时间】:2018-01-18 22:16:51
【问题描述】:
我正在尝试向受保护的 API 发出请求,因此我需要向 HttpClient 添加授权请求标头,如下所示:
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "Your Oauth token");
但是如何从控制器获取身份验证令牌(“您的 Oauth 令牌”)?
PS:我已经通过 Identity Server 4 的身份验证。 在 AspNetCore 中开发的应用程序。
完整代码:
[Authorize] //Already authenticated
public IActionResult SomeControllerAction()
{
var claimsIdentity = User.Identity as ClaimsIdentity; //where is JWTToken??
var JWTTokne = "how to get?";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", JWTTokne);
var result = client.PostAsync("someurl", new StringContent(json, Encoding.UTF8, "application/json")).Result;
//more code to handle result....
}
return View();
}
【问题讨论】:
-
控制器动作是[授权]动作吗? IOW 是使用在请求中发送了 Authorization 标头的客户端调用的控制器吗?
-
是的,它已被授权一个已经过身份验证的操作。
标签: c# asp.net-core identityserver4 asp.net-core-identity