diff --git a/Directory.Build.targets b/Directory.Build.targets
index fd42380ee..8d162cfd9 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -23,7 +23,7 @@
-->
annotations
@@ -68,6 +68,11 @@
$(DefineConstants);SUPPORTS_SERVICE_PROVIDER_IN_HTTP_MESSAGE_HANDLER_BUILDER
+
+ $(DefineConstants);SUPPORTS_HTTP_CLIENT_DEFAULT_REQUEST_VERSION
+
+
diff --git a/src/OpenIddict.Validation.SystemNetHttp/OpenIddict.Validation.SystemNetHttp.csproj b/src/OpenIddict.Validation.SystemNetHttp/OpenIddict.Validation.SystemNetHttp.csproj
index 1bdc22497..15d257a68 100644
--- a/src/OpenIddict.Validation.SystemNetHttp/OpenIddict.Validation.SystemNetHttp.csproj
+++ b/src/OpenIddict.Validation.SystemNetHttp/OpenIddict.Validation.SystemNetHttp.csproj
@@ -1,7 +1,7 @@
- net461;netstandard2.0;netstandard2.1
+ net461;netcoreapp3.1;net5.0;net6.0;netstandard2.0;netstandard2.1
diff --git a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.cs b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.cs
index cd1743f31..5149615e6 100644
--- a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.cs
+++ b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.cs
@@ -256,12 +256,16 @@ public async ValueTask HandleAsync(TContext context)
}
var assembly = typeof(OpenIddictValidationSystemNetHttpOptions).Assembly.GetName();
- using var client = _factory.CreateClient(assembly.Name);
+ using var client = _factory.CreateClient(assembly.Name!);
if (client is null)
{
throw new InvalidOperationException(SR.GetResourceString(SR.ID0174));
}
+#if SUPPORTS_HTTP_CLIENT_DEFAULT_REQUEST_VERSION
+ // If supported, import the HTTP version from the client instance.
+ request.Version = client.DefaultRequestVersion;
+#endif
var response = await client.SendAsync(request, HttpCompletionOption.ResponseContentRead);
if (response is null)
{