From edf371fd9e92d2db83734214123cbdf764deeffa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Chalet?= Date: Wed, 11 Sep 2019 12:02:27 +0200 Subject: [PATCH] Cross-compile the ASP.NET Core hosts to support ASP.NET Core 2.x on .NET Framework/.NET Core 2.1 --- eng/Versions.props | 20 +++++++++++++++++-- global.json | 5 ++++- samples/Mvc.Client/Mvc.Client.csproj | 2 +- samples/Mvc.Server/Mvc.Server.csproj | 4 ++-- .../OpenIddict.AspNetCore.csproj | 2 +- .../OpenIddict.Server.AspNetCore.csproj | 14 +++++++++++-- ...ServerAspNetCoreHandlers.Authentication.cs | 6 ++++++ ...nIddictServerAspNetCoreHandlers.Session.cs | 6 ++++++ .../OpenIddict.Validation.AspNetCore.csproj | 8 ++++++-- ...OpenIddict.Validation.SystemNetHttp.csproj | 4 ++++ ...ictValidationSystemNetHttpConfiguration.cs | 12 ++++++++++- .../OpenIddict.Abstractions.Tests.csproj | 4 ++-- .../OpenIddict.Core.Tests.csproj | 4 ++-- .../OpenIddict.MongoDb.Tests.csproj | 4 ++-- .../OpenIddict.NHibernate.Tests.csproj | 4 ++-- 15 files changed, 79 insertions(+), 20 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index 285ce424..3873ae16 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -6,13 +6,29 @@ - 3.0.0 + 2.1.0 + 3.0.0 + + + + 2.1.0 + 3.0.0 + + + 1.0.0 1.8.5 4.4.0 6.3.0 3.0.0 - 3.0.0 2019.1.3 12.0.2 1.0.2 diff --git a/global.json b/global.json index 2d3e20f2..588b1a7d 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,9 @@ { "tools": { - "dotnet": "3.0.100-preview8-013656" + "dotnet": "3.0.100-preview8-013656", + "runtimes": { + "aspnetcore": [ "2.1.13" ] + } }, "msbuild-sdks": { diff --git a/samples/Mvc.Client/Mvc.Client.csproj b/samples/Mvc.Client/Mvc.Client.csproj index 57121e63..206c01cb 100644 --- a/samples/Mvc.Client/Mvc.Client.csproj +++ b/samples/Mvc.Client/Mvc.Client.csproj @@ -6,7 +6,7 @@ - + diff --git a/samples/Mvc.Server/Mvc.Server.csproj b/samples/Mvc.Server/Mvc.Server.csproj index eeaa2c9c..a07a2d92 100644 --- a/samples/Mvc.Server/Mvc.Server.csproj +++ b/samples/Mvc.Server/Mvc.Server.csproj @@ -16,8 +16,8 @@ - - + + diff --git a/src/OpenIddict.AspNetCore/OpenIddict.AspNetCore.csproj b/src/OpenIddict.AspNetCore/OpenIddict.AspNetCore.csproj index bd5b08ce..081357f1 100644 --- a/src/OpenIddict.AspNetCore/OpenIddict.AspNetCore.csproj +++ b/src/OpenIddict.AspNetCore/OpenIddict.AspNetCore.csproj @@ -1,7 +1,7 @@  - netcoreapp3.0 + net461;netcoreapp2.1;netcoreapp3.0 false false diff --git a/src/OpenIddict.Server.AspNetCore/OpenIddict.Server.AspNetCore.csproj b/src/OpenIddict.Server.AspNetCore/OpenIddict.Server.AspNetCore.csproj index e6e0e074..8cb53981 100644 --- a/src/OpenIddict.Server.AspNetCore/OpenIddict.Server.AspNetCore.csproj +++ b/src/OpenIddict.Server.AspNetCore/OpenIddict.Server.AspNetCore.csproj @@ -1,7 +1,7 @@  - netcoreapp3.0 + net461;netcoreapp2.1;netcoreapp3.0 @@ -9,10 +9,16 @@ $(PackageTags);server;aspnetcore - + + + + + + + @@ -22,4 +28,8 @@ + + $(DefineConstants);SUPPORTS_STATIC_RANDOM_NUMBER_GENERATOR_METHODS + + diff --git a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Authentication.cs b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Authentication.cs index a7550f6d..bfffc8df 100644 --- a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Authentication.cs +++ b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Authentication.cs @@ -207,7 +207,13 @@ namespace OpenIddict.Server.AspNetCore // Generate a 256-bit request identifier using a crypto-secure random number generator. var data = new byte[256 / 8]; + +#if SUPPORTS_STATIC_RANDOM_NUMBER_GENERATOR_METHODS RandomNumberGenerator.Fill(data); +#else + using var generator = RandomNumberGenerator.Create(); + generator.GetBytes(data); +#endif context.Request.RequestId = Base64UrlEncoder.Encode(data); diff --git a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Session.cs b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Session.cs index 01da0d13..eb8bd8c4 100644 --- a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Session.cs +++ b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Session.cs @@ -205,7 +205,13 @@ namespace OpenIddict.Server.AspNetCore // Generate a 256-bit request identifier using a crypto-secure random number generator. var data = new byte[256 / 8]; + +#if SUPPORTS_STATIC_RANDOM_NUMBER_GENERATOR_METHODS RandomNumberGenerator.Fill(data); +#else + using var generator = RandomNumberGenerator.Create(); + generator.GetBytes(data); +#endif context.Request.RequestId = Base64UrlEncoder.Encode(data); diff --git a/src/OpenIddict.Validation.AspNetCore/OpenIddict.Validation.AspNetCore.csproj b/src/OpenIddict.Validation.AspNetCore/OpenIddict.Validation.AspNetCore.csproj index 221e3e83..73659ceb 100644 --- a/src/OpenIddict.Validation.AspNetCore/OpenIddict.Validation.AspNetCore.csproj +++ b/src/OpenIddict.Validation.AspNetCore/OpenIddict.Validation.AspNetCore.csproj @@ -1,7 +1,7 @@  - netcoreapp3.0 + net461;netcoreapp2.1;netcoreapp3.0 @@ -9,10 +9,14 @@ $(PackageTags);validation;aspnetcore - + + + + + diff --git a/src/OpenIddict.Validation.SystemNetHttp/OpenIddict.Validation.SystemNetHttp.csproj b/src/OpenIddict.Validation.SystemNetHttp/OpenIddict.Validation.SystemNetHttp.csproj index 4bf2a9ab..3bd8b16f 100644 --- a/src/OpenIddict.Validation.SystemNetHttp/OpenIddict.Validation.SystemNetHttp.csproj +++ b/src/OpenIddict.Validation.SystemNetHttp/OpenIddict.Validation.SystemNetHttp.csproj @@ -20,4 +20,8 @@ + + $(DefineConstants);SUPPORTS_SERVICE_PROVIDER_IN_HTTP_MESSAGE_HANDLER_BUILDER + + diff --git a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpConfiguration.cs b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpConfiguration.cs index 66c7e739..35e4a9c4 100644 --- a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpConfiguration.cs +++ b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpConfiguration.cs @@ -21,6 +21,13 @@ namespace OpenIddict.Validation.SystemNetHttp public class OpenIddictValidationSystemNetHttpConfiguration : IConfigureOptions, IConfigureNamedOptions { +#if !SUPPORTS_SERVICE_PROVIDER_IN_HTTP_MESSAGE_HANDLER_BUILDER + private readonly IServiceProvider _serviceProvider; + + public OpenIddictValidationSystemNetHttpConfiguration([NotNull] IServiceProvider serviceProvider) + => _serviceProvider = serviceProvider; +#endif + public void Configure([NotNull] OpenIddictValidationOptions options) { if (options == null) @@ -61,8 +68,11 @@ namespace OpenIddict.Validation.SystemNetHttp options.HttpMessageHandlerBuilderActions.Add(builder => { +#if SUPPORTS_SERVICE_PROVIDER_IN_HTTP_MESSAGE_HANDLER_BUILDER var options = builder.Services.GetRequiredService>(); - +#else + var options = _serviceProvider.GetRequiredService>(); +#endif var policy = options.CurrentValue.HttpErrorPolicy; if (policy != null) { diff --git a/test/OpenIddict.Abstractions.Tests/OpenIddict.Abstractions.Tests.csproj b/test/OpenIddict.Abstractions.Tests/OpenIddict.Abstractions.Tests.csproj index c3e81cf8..579990c1 100644 --- a/test/OpenIddict.Abstractions.Tests/OpenIddict.Abstractions.Tests.csproj +++ b/test/OpenIddict.Abstractions.Tests/OpenIddict.Abstractions.Tests.csproj @@ -1,8 +1,8 @@  - netcoreapp3.0;net461 - netcoreapp3.0 + netcoreapp2.1;netcoreapp3.0;net461 + netcoreapp2.1;netcoreapp3.0 diff --git a/test/OpenIddict.Core.Tests/OpenIddict.Core.Tests.csproj b/test/OpenIddict.Core.Tests/OpenIddict.Core.Tests.csproj index 07dc66f2..6acd61de 100644 --- a/test/OpenIddict.Core.Tests/OpenIddict.Core.Tests.csproj +++ b/test/OpenIddict.Core.Tests/OpenIddict.Core.Tests.csproj @@ -1,8 +1,8 @@  - netcoreapp3.0;net461 - netcoreapp3.0 + netcoreapp2.1;netcoreapp3.0;net461 + netcoreapp2.1;netcoreapp3.0 diff --git a/test/OpenIddict.MongoDb.Tests/OpenIddict.MongoDb.Tests.csproj b/test/OpenIddict.MongoDb.Tests/OpenIddict.MongoDb.Tests.csproj index f322d411..67b942cd 100644 --- a/test/OpenIddict.MongoDb.Tests/OpenIddict.MongoDb.Tests.csproj +++ b/test/OpenIddict.MongoDb.Tests/OpenIddict.MongoDb.Tests.csproj @@ -1,8 +1,8 @@  - netcoreapp3.0;net461 - netcoreapp3.0 + netcoreapp2.1;netcoreapp3.0;net461 + netcoreapp2.1;netcoreapp3.0 false false diff --git a/test/OpenIddict.NHibernate.Tests/OpenIddict.NHibernate.Tests.csproj b/test/OpenIddict.NHibernate.Tests/OpenIddict.NHibernate.Tests.csproj index 0f4334cf..fbc0c688 100644 --- a/test/OpenIddict.NHibernate.Tests/OpenIddict.NHibernate.Tests.csproj +++ b/test/OpenIddict.NHibernate.Tests/OpenIddict.NHibernate.Tests.csproj @@ -1,8 +1,8 @@  - netcoreapp3.0;net461 - netcoreapp3.0 + netcoreapp2.1;netcoreapp3.0;net461 + netcoreapp2.1;netcoreapp3.0