diff --git a/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj b/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj
index 3e4ae78b91..ce26fe7bea 100644
--- a/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj
+++ b/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj
@@ -16,6 +16,7 @@
+
diff --git a/framework/src/Volo.Abp.IdentityModel/Volo/Abp/IdentityModel/IdentityModelAuthenticationService.cs b/framework/src/Volo.Abp.IdentityModel/Volo/Abp/IdentityModel/IdentityModelAuthenticationService.cs
index ca6e41d60d..6487f6ce65 100644
--- a/framework/src/Volo.Abp.IdentityModel/Volo/Abp/IdentityModel/IdentityModelAuthenticationService.cs
+++ b/framework/src/Volo.Abp.IdentityModel/Volo/Abp/IdentityModel/IdentityModelAuthenticationService.cs
@@ -21,12 +21,15 @@ namespace Volo.Abp.IdentityModel
public ILogger Logger { get; set; }
protected AbpIdentityClientOptions ClientOptions { get; }
protected ICancellationTokenProvider CancellationTokenProvider { get; }
+ protected IHttpClientFactory HttpClientFactory { get; }
public IdentityModelAuthenticationService(
IOptions options,
- ICancellationTokenProvider cancellationTokenProvider)
+ ICancellationTokenProvider cancellationTokenProvider,
+ IHttpClientFactory httpClientFactory)
{
CancellationTokenProvider = cancellationTokenProvider;
+ HttpClientFactory = httpClientFactory;
ClientOptions = options.Value;
Logger = NullLogger.Instance;
}
@@ -95,7 +98,7 @@ namespace Volo.Abp.IdentityModel
protected virtual async Task GetDiscoveryResponse(
IdentityClientConfiguration configuration)
{
- using (var httpClient = new HttpClient())
+ using (var httpClient = HttpClientFactory.CreateClient())
{
return await httpClient.GetDiscoveryDocumentAsync(new DiscoveryDocumentRequest
{
@@ -109,10 +112,10 @@ namespace Volo.Abp.IdentityModel
}
protected virtual async Task GetTokenResponse(
- DiscoveryDocumentResponse discoveryResponse,
+ DiscoveryDocumentResponse discoveryResponse,
IdentityClientConfiguration configuration)
{
- using (var httpClient = new HttpClient())
+ using (var httpClient = HttpClientFactory.CreateClient())
{
switch (configuration.GrantType)
{
@@ -134,7 +137,7 @@ namespace Volo.Abp.IdentityModel
protected virtual Task CreatePasswordTokenRequestAsync(DiscoveryDocumentResponse discoveryResponse, IdentityClientConfiguration configuration)
{
- var request = new PasswordTokenRequest
+ var request = new PasswordTokenRequest
{
Address = discoveryResponse.TokenEndpoint,
Scope = configuration.Scope,
@@ -149,11 +152,11 @@ namespace Volo.Abp.IdentityModel
return Task.FromResult(request);
}
- protected virtual Task CreateClientCredentialsTokenRequestAsync(
- DiscoveryDocumentResponse discoveryResponse,
+ protected virtual Task CreateClientCredentialsTokenRequestAsync(
+ DiscoveryDocumentResponse discoveryResponse,
IdentityClientConfiguration configuration)
{
- var request = new ClientCredentialsTokenRequest
+ var request = new ClientCredentialsTokenRequest
{
Address = discoveryResponse.TokenEndpoint,
Scope = configuration.Scope,