如何在 Asp.Net Core 6 中将不记名令牌身份验证添加到类型化的 HttpClient
How to add bearer token authentication to typed HttpClient in Asp.Net Core 6
我正在尝试使用 ASP.Net Core 6 设置 Web api,以便用户可以访问我的终点,然后我使用特权帐户在幕后的 D365 中做一些工作。我正在使用类型化的 HTTP 客户端,但我不确定如何插入承载身份验证,以便来自该客户端的所有请求都附有正确的授权 header。
Program.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?
}
感谢任何帮助。谢谢
将令牌添加到您的 httpclinet
你应该使用下面的代码
httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue($"Bearer",$"{accessToken}");
How do I generate that token
正如@DiplomacyNotWar 在他的评论中解释的那样,您应该能够按照您要连接的服务的说明生成该令牌
一些服务将共享用户名和密码(应用程序 ID 和密钥),您可以使用它来设置您的基本身份验证,然后您将能够调用您的令牌端点,return 访问令牌您将能够将它与您的 httpclinet
一起使用
此致,
我正在尝试使用 ASP.Net Core 6 设置 Web api,以便用户可以访问我的终点,然后我使用特权帐户在幕后的 D365 中做一些工作。我正在使用类型化的 HTTP 客户端,但我不确定如何插入承载身份验证,以便来自该客户端的所有请求都附有正确的授权 header。
Program.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?
}
感谢任何帮助。谢谢
将令牌添加到您的 httpclinet
你应该使用下面的代码
httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue($"Bearer",$"{accessToken}");
How do I generate that token
正如@DiplomacyNotWar 在他的评论中解释的那样,您应该能够按照您要连接的服务的说明生成该令牌
一些服务将共享用户名和密码(应用程序 ID 和密钥),您可以使用它来设置您的基本身份验证,然后您将能够调用您的令牌端点,return 访问令牌您将能够将它与您的 httpclinet
一起使用此致,