[英]How to add bearer token authentication to typed HttpClient in Asp.Net Core 6
我正在尝试使用 ASP.Net Core 6 设置 web api,以便用户可以达到我的终点,然后我使用特权帐户在幕后的 D365 中做一些工作。 我正在使用类型化的 HTTP 客户端,但我不确定如何插入承载身份验证,以便来自该客户端的所有请求都附加了正确的授权 header。
程序.cs
builder.Services.AddHttpClient<D365Service>();
D365Service.cs
private readonly HttpClient httpClient;
public D365Service(HttpClient httpClient)
{
this.httpClient = httpClient;
this.httpClient.DefaultRequestHeaders.Add("Accept", "*/*");
this.httpClient.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate, br");
// a whole bunch of other headers
// Is this where I can add in the bearer Authorization header? How do I generate that token?
}
任何帮助表示赞赏。 谢谢。
将令牌添加到您的 httpcl.net
你应该使用下面的代码
httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue($"Bearer",$"{accessToken}");
我如何生成该令牌
正如@DiplomacyNotWar 在他的评论中解释的那样,您应该能够按照您要连接的服务的说明生成该令牌
一些服务将共享用户名和密码(应用程序 ID 和密钥),您可以使用它来设置您的基本身份验证,然后您将能够调用您的令牌端点,返回您将能够使用它的访问令牌你的 httpcl.net
问候,
我知道两种向 HttpClient 添加令牌的方法。 但我不知道它们之间有什么区别
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + #YourToken);
和
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", #YourToken);
他们工作得很好。 但我认为他们会有不同的东西。 如果你知道,请告诉我
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.