Browse Source

Add .NET 5.0 TFMs and bump the .NET SDK to 5.0.100

pull/1163/head
Kévin Chalet 6 years ago
parent
commit
bff6ed027b
  1. 1
      Directory.Build.props
  2. 5
      Directory.Build.targets
  3. 36
      Packages.props
  4. 2
      global.json
  5. 8
      samples/Mvc.Client/Controllers/AuthenticationController.cs
  6. 3
      samples/Mvc.Client/Mvc.Client.csproj
  7. 2
      samples/Mvc.Client/Startup.cs
  8. 4
      samples/Mvc.Client/Views/Shared/Home.cshtml
  9. 3
      samples/Mvc.Server/Mvc.Server.csproj
  10. 1
      src/OpenIddict.Abstractions/OpenIddict.Abstractions.csproj
  11. 3
      src/OpenIddict.AspNetCore/OpenIddict.AspNetCore.csproj
  12. 3
      src/OpenIddict.Core/OpenIddict.Core.csproj
  13. 1
      src/OpenIddict.EntityFramework.Models/OpenIddict.EntityFramework.Models.csproj
  14. 3
      src/OpenIddict.EntityFramework/OpenIddict.EntityFramework.csproj
  15. 1
      src/OpenIddict.EntityFrameworkCore.Models/OpenIddict.EntityFrameworkCore.Models.csproj
  16. 3
      src/OpenIddict.EntityFrameworkCore/OpenIddict.EntityFrameworkCore.csproj
  17. 1
      src/OpenIddict.MongoDb.Models/OpenIddict.MongoDb.Models.csproj
  18. 3
      src/OpenIddict.MongoDb/OpenIddict.MongoDb.csproj
  19. 3
      src/OpenIddict.Quartz/OpenIddict.Quartz.csproj
  20. 3
      src/OpenIddict.Server.AspNetCore/OpenIddict.Server.AspNetCore.csproj
  21. 2
      src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandler.cs
  22. 16
      src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Authentication.cs
  23. 16
      src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Session.cs
  24. 3
      src/OpenIddict.Server.DataProtection/OpenIddict.Server.DataProtection.csproj
  25. 1
      src/OpenIddict.Server.Owin/OpenIddict.Server.Owin.csproj
  26. 3
      src/OpenIddict.Server/OpenIddict.Server.csproj
  27. 3
      src/OpenIddict.Validation.AspNetCore/OpenIddict.Validation.AspNetCore.csproj
  28. 2
      src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreHandler.cs
  29. 3
      src/OpenIddict.Validation.DataProtection/OpenIddict.Validation.DataProtection.csproj
  30. 1
      src/OpenIddict.Validation.Owin/OpenIddict.Validation.Owin.csproj
  31. 1
      src/OpenIddict.Validation.ServerIntegration/OpenIddict.Validation.ServerIntegration.csproj
  32. 1
      src/OpenIddict.Validation.SystemNetHttp/OpenIddict.Validation.SystemNetHttp.csproj
  33. 3
      src/OpenIddict.Validation/OpenIddict.Validation.csproj
  34. 3
      src/OpenIddict/OpenIddict.csproj
  35. 3
      test/OpenIddict.Abstractions.Tests/OpenIddict.Abstractions.Tests.csproj
  36. 3
      test/OpenIddict.Core.Tests/OpenIddict.Core.Tests.csproj
  37. 3
      test/OpenIddict.EntityFramework.Tests/OpenIddict.EntityFramework.Tests.csproj
  38. 3
      test/OpenIddict.EntityFrameworkCore.Tests/OpenIddict.EntityFrameworkCore.Tests.csproj
  39. 3
      test/OpenIddict.MongoDb.Tests/OpenIddict.MongoDb.Tests.csproj
  40. 4
      test/OpenIddict.Quartz.Tests/OpenIddict.Quartz.Tests.csproj
  41. 3
      test/OpenIddict.Server.AspNetCore.IntegrationTests/OpenIddict.Server.AspNetCore.IntegrationTests.csproj
  42. 12
      test/OpenIddict.Server.AspNetCore.IntegrationTests/OpenIddictServerAspNetCoreIntegrationTests.cs
  43. 3
      test/OpenIddict.Server.IntegrationTests/OpenIddict.Server.IntegrationTests.csproj
  44. 2
      test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTestClient.cs
  45. 1
      test/OpenIddict.Server.Owin.IntegrationTests/OpenIddict.Server.Owin.IntegrationTests.csproj
  46. 4
      test/OpenIddict.Server.Tests/OpenIddict.Server.Tests.csproj

1
Directory.Build.props

@ -7,6 +7,7 @@
<AnalysisLevel>preview</AnalysisLevel> <AnalysisLevel>preview</AnalysisLevel>
<NoWarn>$(NoWarn);CS1591;NU5118;NU5128</NoWarn> <NoWarn>$(NoWarn);CS1591;NU5118;NU5128</NoWarn>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors> <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Nullable>enable</Nullable>
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
<DebugType>portable</DebugType> <DebugType>portable</DebugType>
<SymbolPackageFormat>snupkg</SymbolPackageFormat> <SymbolPackageFormat>snupkg</SymbolPackageFormat>

5
Directory.Build.targets

@ -61,6 +61,11 @@
<DefineConstants>$(DefineConstants);SUPPORTS_BCL_ASYNC_ENUMERABLE</DefineConstants> <DefineConstants>$(DefineConstants);SUPPORTS_BCL_ASYNC_ENUMERABLE</DefineConstants>
</PropertyGroup> </PropertyGroup>
<PropertyGroup
Condition=" ('$(TargetFrameworkIdentifier)' == '.NETCoreApp' And $([MSBuild]::VersionGreaterThanOrEquals($(TargetFrameworkVersion), '5.0'))) ">
<DefineConstants>$(DefineConstants);SUPPORTS_MULTIPLE_VALUES_IN_QUERYHELPERS</DefineConstants>
</PropertyGroup>
<!-- <!--
Note: Entity Framework Core 2.x references System.Interactive.Async 3.x, that includes Note: Entity Framework Core 2.x references System.Interactive.Async 3.x, that includes
its own IAsyncEnumerable. To work around collisions between this type and the new type its own IAsyncEnumerable. To work around collisions between this type and the new type

36
Packages.props

@ -17,11 +17,7 @@
<PackageReference Update="Portable.BouncyCastle" Version="1.8.6.7" /> <PackageReference Update="Portable.BouncyCastle" Version="1.8.6.7" />
<PackageReference Update="Quartz.Extensions.DependencyInjection" Version="3.2.2" /> <PackageReference Update="Quartz.Extensions.DependencyInjection" Version="3.2.2" />
<PackageReference Update="Quartz.Extensions.Hosting" Version="3.2.2" /> <PackageReference Update="Quartz.Extensions.Hosting" Version="3.2.2" />
<PackageReference Update="System.Collections.Immutable" Version="1.7.1" />
<PackageReference Update="System.ComponentModel.Annotations" Version="4.7.0" />
<PackageReference Update="System.Linq.Async" Version="4.1.1" /> <PackageReference Update="System.Linq.Async" Version="4.1.1" />
<PackageReference Update="System.Net.Http.Json" Version="3.2.1" />
<PackageReference Update="System.Text.Json" Version="4.7.2" />
<PackageReference Update="TunnelVisionLabs.ReferenceAssemblyAnnotator" Version="1.0.0-alpha.160" /> <PackageReference Update="TunnelVisionLabs.ReferenceAssemblyAnnotator" Version="1.0.0-alpha.160" />
</ItemGroup> </ItemGroup>
@ -47,6 +43,10 @@
<PackageReference Update="Microsoft.Extensions.Options" Version="2.1.1" /> <PackageReference Update="Microsoft.Extensions.Options" Version="2.1.1" />
<PackageReference Update="Microsoft.Extensions.Primitives" Version="2.1.6" /> <PackageReference Update="Microsoft.Extensions.Primitives" Version="2.1.6" />
<PackageReference Update="Microsoft.Extensions.WebEncoders" Version="2.1.1" /> <PackageReference Update="Microsoft.Extensions.WebEncoders" Version="2.1.1" />
<PackageReference Update="System.Collections.Immutable" Version="1.7.1" />
<PackageReference Update="System.ComponentModel.Annotations" Version="4.7.0" />
<PackageReference Update="System.Net.Http.Json" Version="3.2.1" />
<PackageReference Update="System.Text.Json" Version="4.7.2" />
</ItemGroup> </ItemGroup>
<ItemGroup <ItemGroup
@ -68,6 +68,34 @@
<PackageReference Update="Microsoft.Extensions.Options" Version="3.1.9" /> <PackageReference Update="Microsoft.Extensions.Options" Version="3.1.9" />
<PackageReference Update="Microsoft.Extensions.Primitives" Version="3.1.9" /> <PackageReference Update="Microsoft.Extensions.Primitives" Version="3.1.9" />
<PackageReference Update="Microsoft.Extensions.WebEncoders" Version="3.1.9" /> <PackageReference Update="Microsoft.Extensions.WebEncoders" Version="3.1.9" />
<PackageReference Update="System.Collections.Immutable" Version="1.7.1" />
<PackageReference Update="System.ComponentModel.Annotations" Version="4.7.0" />
<PackageReference Update="System.Net.Http.Json" Version="3.2.1" />
<PackageReference Update="System.Text.Json" Version="4.7.2" />
</ItemGroup>
<ItemGroup
Condition=" ('$(TargetFrameworkIdentifier)' == '.NETCoreApp' And $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '5.0'))) ">
<PackageReference Update="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="5.0.0" />
<PackageReference Update="Microsoft.AspNetCore.DataProtection" Version="5.0.0" />
<PackageReference Update="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.0" />
<PackageReference Update="Microsoft.AspNetCore.TestHost" Version="5.0.0" />
<PackageReference Update="Microsoft.EntityFrameworkCore.Relational" Version="5.0.0" />
<PackageReference Update="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.DependencyInjection" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.Caching.Abstractions" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.Caching.Memory" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.Http.Polly" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.Localization" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.Logging" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.Options" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.Primitives" Version="5.0.0" />
<PackageReference Update="Microsoft.Extensions.WebEncoders" Version="5.0.0" />
<PackageReference Update="System.Collections.Immutable" Version="5.0.0" />
<PackageReference Update="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageReference Update="System.Net.Http.Json" Version="5.0.0" />
<PackageReference Update="System.Text.Json" Version="5.0.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

2
global.json

@ -1,6 +1,6 @@
{ {
"tools": { "tools": {
"dotnet": "5.0.100-rc.2.20479.15", "dotnet": "5.0.100",
"runtimes": { "runtimes": {
"aspnetcore": [ "aspnetcore": [

8
samples/Mvc.Client/Controllers/AuthenticationController.cs

@ -7,16 +7,16 @@ namespace Mvc.Client.Controllers
{ {
public class AuthenticationController : Controller public class AuthenticationController : Controller
{ {
[HttpGet("~/signin")] [HttpGet("~/login")]
public ActionResult SignIn() public ActionResult LogIn()
{ {
// Instruct the OIDC client middleware to redirect the user agent to the identity provider. // Instruct the OIDC client middleware to redirect the user agent to the identity provider.
// Note: the authenticationType parameter must match the value configured in Startup.cs // Note: the authenticationType parameter must match the value configured in Startup.cs
return Challenge(new AuthenticationProperties { RedirectUri = "/" }, OpenIdConnectDefaults.AuthenticationScheme); return Challenge(new AuthenticationProperties { RedirectUri = "/" }, OpenIdConnectDefaults.AuthenticationScheme);
} }
[HttpGet("~/signout"), HttpPost("~/signout")] [HttpGet("~/logout"), HttpPost("~/logout")]
public ActionResult SignOut() public ActionResult LogOut()
{ {
// Instruct the cookies middleware to delete the local cookie created when the user agent // Instruct the cookies middleware to delete the local cookie created when the user agent
// is redirected from the identity provider after a successful authorization flow and // is redirected from the identity provider after a successful authorization flow and

3
samples/Mvc.Client/Mvc.Client.csproj

@ -1,8 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net5.0</TargetFramework>
<IsShipping>false</IsShipping> <IsShipping>false</IsShipping>
<Nullable>disable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

2
samples/Mvc.Client/Startup.cs

@ -20,7 +20,7 @@ namespace Mvc.Client
.AddCookie(options => .AddCookie(options =>
{ {
options.LoginPath = new PathString("/signin"); options.LoginPath = "/login";
}) })
.AddOpenIdConnect(options => .AddOpenIdConnect(options =>

4
samples/Mvc.Client/Views/Shared/Home.cshtml

@ -18,11 +18,11 @@
<button class="btn btn-lg btn-warning" type="submit">Query the resource controller</button> <button class="btn btn-lg btn-warning" type="submit">Query the resource controller</button>
</form> </form>
<a class="btn btn-lg btn-danger" href="/signout">Sign out</a> <a class="btn btn-lg btn-danger" href="/logout">Sign out</a>
} }
else { else {
<h1>Welcome, anonymous</h1> <h1>Welcome, anonymous</h1>
<a class="btn btn-lg btn-success" href="/signin">Sign in</a> <a class="btn btn-lg btn-success" href="/login">Sign in</a>
} }
</div> </div>

3
samples/Mvc.Server/Mvc.Server.csproj

@ -1,10 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>net5.0</TargetFramework>
<IsShipping>false</IsShipping> <IsShipping>false</IsShipping>
<SignAssembly>false</SignAssembly> <SignAssembly>false</SignAssembly>
<TypeScriptEnabled>false</TypeScriptEnabled> <TypeScriptEnabled>false</TypeScriptEnabled>
<Nullable>disable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

1
src/OpenIddict.Abstractions/OpenIddict.Abstractions.csproj

@ -3,7 +3,6 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netstandard2.0;netstandard2.1</TargetFrameworks> <TargetFrameworks>net461;netstandard2.0;netstandard2.1</TargetFrameworks>
<GenerateResxSourceEmitFormatMethods>true</GenerateResxSourceEmitFormatMethods> <GenerateResxSourceEmitFormatMethods>true</GenerateResxSourceEmitFormatMethods>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

3
src/OpenIddict.AspNetCore/OpenIddict.AspNetCore.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
<IncludeBuildOutput>false</IncludeBuildOutput> <IncludeBuildOutput>false</IncludeBuildOutput>
<IncludeSymbols>false</IncludeSymbols> <IncludeSymbols>false</IncludeSymbols>
</PropertyGroup> </PropertyGroup>
@ -23,6 +23,7 @@
<None Include="_._" Pack="true" PackagePath="lib\net461\_._" /> <None Include="_._" Pack="true" PackagePath="lib\net461\_._" />
<None Include="_._" Pack="true" PackagePath="lib\netcoreapp2.1\_._" /> <None Include="_._" Pack="true" PackagePath="lib\netcoreapp2.1\_._" />
<None Include="_._" Pack="true" PackagePath="lib\netcoreapp3.1\_._" /> <None Include="_._" Pack="true" PackagePath="lib\netcoreapp3.1\_._" />
<None Include="_._" Pack="true" PackagePath="lib\net5.0\_._" />
</ItemGroup> </ItemGroup>
</Project> </Project>

3
src/OpenIddict.Core/OpenIddict.Core.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;net472;netcoreapp2.1;netcoreapp3.1;netstandard2.0;netstandard2.1</TargetFrameworks> <TargetFrameworks>net461;net472;netcoreapp2.1;netcoreapp3.1;net5.0;netstandard2.0;netstandard2.1</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

1
src/OpenIddict.EntityFramework.Models/OpenIddict.EntityFramework.Models.csproj

@ -2,7 +2,6 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks> <TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

3
src/OpenIddict.EntityFramework/OpenIddict.EntityFramework.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netstandard2.1</TargetFrameworks> <TargetFrameworks>net461;net5.0;netstandard2.1</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

1
src/OpenIddict.EntityFrameworkCore.Models/OpenIddict.EntityFrameworkCore.Models.csproj

@ -2,7 +2,6 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks> <TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

3
src/OpenIddict.EntityFrameworkCore/OpenIddict.EntityFrameworkCore.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;netstandard2.0;netstandard2.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;net5.0;netstandard2.0;netstandard2.1</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

1
src/OpenIddict.MongoDb.Models/OpenIddict.MongoDb.Models.csproj

@ -2,7 +2,6 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks> <TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
<Nullable>enable</Nullable>
<SignAssembly>false</SignAssembly> <SignAssembly>false</SignAssembly>
<PublicSign>false</PublicSign> <PublicSign>false</PublicSign>
</PropertyGroup> </PropertyGroup>

3
src/OpenIddict.MongoDb/OpenIddict.MongoDb.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;netstandard2.0;netstandard2.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;net5.0;netstandard2.0;netstandard2.1</TargetFrameworks>
<Nullable>enable</Nullable>
<SignAssembly>false</SignAssembly> <SignAssembly>false</SignAssembly>
<PublicSign>false</PublicSign> <PublicSign>false</PublicSign>
</PropertyGroup> </PropertyGroup>

3
src/OpenIddict.Quartz/OpenIddict.Quartz.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;netstandard2.0;netstandard2.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;net5.0;netstandard2.0;netstandard2.1</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

3
src/OpenIddict.Server.AspNetCore/OpenIddict.Server.AspNetCore.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

2
src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandler.cs

@ -166,7 +166,7 @@ namespace OpenIddict.Server.AspNetCore
{ {
new AuthenticationToken new AuthenticationToken
{ {
Name = context.Principal.GetTokenType(), Name = context.Principal.GetTokenType()!,
Value = context.Token Value = context.Token
} }
}); });

16
src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Authentication.cs

@ -442,11 +442,21 @@ namespace OpenIddict.Server.AspNetCore
context.Logger.LogInformation(SR.GetResourceString(SR.ID6148), context.RedirectUri, context.Response); context.Logger.LogInformation(SR.GetResourceString(SR.ID6148), context.RedirectUri, context.Response);
var location = context.RedirectUri;
// Note: while initially not allowed by the core OAuth 2.0 specification, multiple parameters // Note: while initially not allowed by the core OAuth 2.0 specification, multiple parameters
// with the same name are used by derived drafts like the OAuth 2.0 token exchange specification. // with the same name are used by derived drafts like the OAuth 2.0 token exchange specification.
// For consistency, multiple parameters with the same name are also supported by this endpoint. // For consistency, multiple parameters with the same name are also supported by this endpoint.
#if SUPPORTS_MULTIPLE_VALUES_IN_QUERYHELPERS
var location = QueryHelpers.AddQueryString(context.RedirectUri,
from parameter in context.Response.GetParameters()
let values = (string?[]?) parameter.Value
where values != null
from value in values
where !string.IsNullOrEmpty(value)
select KeyValuePair.Create(parameter.Key, value));
#else
var location = context.RedirectUri;
foreach (var (key, value) in foreach (var (key, value) in
from parameter in context.Response.GetParameters() from parameter in context.Response.GetParameters()
let values = (string?[]?) parameter.Value let values = (string?[]?) parameter.Value
@ -457,7 +467,7 @@ namespace OpenIddict.Server.AspNetCore
{ {
location = QueryHelpers.AddQueryString(location, key, value); location = QueryHelpers.AddQueryString(location, key, value);
} }
#endif
response.Redirect(location); response.Redirect(location);
context.HandleRequest(); context.HandleRequest();

16
src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Session.cs

@ -344,11 +344,21 @@ namespace OpenIddict.Server.AspNetCore
context.Logger.LogInformation(SR.GetResourceString(SR.ID6151), context.PostLogoutRedirectUri, response); context.Logger.LogInformation(SR.GetResourceString(SR.ID6151), context.PostLogoutRedirectUri, response);
var location = context.PostLogoutRedirectUri;
// Note: while initially not allowed by the core OAuth 2.0 specification, multiple parameters // Note: while initially not allowed by the core OAuth 2.0 specification, multiple parameters
// with the same name are used by derived drafts like the OAuth 2.0 token exchange specification. // with the same name are used by derived drafts like the OAuth 2.0 token exchange specification.
// For consistency, multiple parameters with the same name are also supported by this endpoint. // For consistency, multiple parameters with the same name are also supported by this endpoint.
#if SUPPORTS_MULTIPLE_VALUES_IN_QUERYHELPERS
var location = QueryHelpers.AddQueryString(context.PostLogoutRedirectUri,
from parameter in context.Response.GetParameters()
let values = (string?[]?) parameter.Value
where values != null
from value in values
where !string.IsNullOrEmpty(value)
select KeyValuePair.Create(parameter.Key, value));
#else
var location = context.PostLogoutRedirectUri;
foreach (var (key, value) in foreach (var (key, value) in
from parameter in context.Response.GetParameters() from parameter in context.Response.GetParameters()
let values = (string?[]?) parameter.Value let values = (string?[]?) parameter.Value
@ -359,7 +369,7 @@ namespace OpenIddict.Server.AspNetCore
{ {
location = QueryHelpers.AddQueryString(location, key, value); location = QueryHelpers.AddQueryString(location, key, value);
} }
#endif
response.Redirect(location); response.Redirect(location);
context.HandleRequest(); context.HandleRequest();

3
src/OpenIddict.Server.DataProtection/OpenIddict.Server.DataProtection.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;netstandard2.0;netstandard2.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;net5.0;netstandard2.0;netstandard2.1</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

1
src/OpenIddict.Server.Owin/OpenIddict.Server.Owin.csproj

@ -2,7 +2,6 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net461</TargetFramework> <TargetFramework>net461</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

3
src/OpenIddict.Server/OpenIddict.Server.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;net472;net48;netcoreapp2.1;netcoreapp3.1;netstandard2.0;netstandard2.1</TargetFrameworks> <TargetFrameworks>net461;net472;net48;netcoreapp2.1;netcoreapp3.1;net5.0;netstandard2.0;netstandard2.1</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

3
src/OpenIddict.Validation.AspNetCore/OpenIddict.Validation.AspNetCore.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

2
src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreHandler.cs

@ -163,7 +163,7 @@ namespace OpenIddict.Validation.AspNetCore
{ {
new AuthenticationToken new AuthenticationToken
{ {
Name = context.Principal.GetTokenType(), Name = context.Principal.GetTokenType()!,
Value = context.Token Value = context.Token
} }
}); });

3
src/OpenIddict.Validation.DataProtection/OpenIddict.Validation.DataProtection.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp3.1;netstandard2.0;netstandard2.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp3.1;net5.0;netstandard2.0;netstandard2.1</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

1
src/OpenIddict.Validation.Owin/OpenIddict.Validation.Owin.csproj

@ -2,7 +2,6 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net461</TargetFramework> <TargetFramework>net461</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

1
src/OpenIddict.Validation.ServerIntegration/OpenIddict.Validation.ServerIntegration.csproj

@ -2,7 +2,6 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netstandard2.0;netstandard2.1</TargetFrameworks> <TargetFrameworks>net461;netstandard2.0;netstandard2.1</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

1
src/OpenIddict.Validation.SystemNetHttp/OpenIddict.Validation.SystemNetHttp.csproj

@ -2,7 +2,6 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netstandard2.0;netstandard2.1</TargetFrameworks> <TargetFrameworks>net461;netstandard2.0;netstandard2.1</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

3
src/OpenIddict.Validation/OpenIddict.Validation.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;net472;netcoreapp2.1;netcoreapp3.1;netstandard2.0;netstandard2.1</TargetFrameworks> <TargetFrameworks>net461;net472;netcoreapp2.1;netcoreapp3.1;net5.0;netstandard2.0;netstandard2.1</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

3
src/OpenIddict/OpenIddict.csproj

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;netstandard2.0;netstandard2.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;net5.0;netstandard2.0;netstandard2.1</TargetFrameworks>
<IncludeBuildOutput>false</IncludeBuildOutput> <IncludeBuildOutput>false</IncludeBuildOutput>
<IncludeSymbols>false</IncludeSymbols> <IncludeSymbols>false</IncludeSymbols>
</PropertyGroup> </PropertyGroup>
@ -26,6 +26,7 @@ To use these features on ASP.NET Core or OWIN/Katana/ASP.NET 4.x, reference the
<None Include="_._" Pack="true" PackagePath="lib\net461\_._" /> <None Include="_._" Pack="true" PackagePath="lib\net461\_._" />
<None Include="_._" Pack="true" PackagePath="lib\netcoreapp2.1\_._" /> <None Include="_._" Pack="true" PackagePath="lib\netcoreapp2.1\_._" />
<None Include="_._" Pack="true" PackagePath="lib\netcoreapp3.1\_._" /> <None Include="_._" Pack="true" PackagePath="lib\netcoreapp3.1\_._" />
<None Include="_._" Pack="true" PackagePath="lib\net5.0\_._" />
<None Include="_._" Pack="true" PackagePath="lib\netstandard2.0\_._" /> <None Include="_._" Pack="true" PackagePath="lib\netstandard2.0\_._" />
<None Include="_._" Pack="true" PackagePath="lib\netstandard2.1\_._" /> <None Include="_._" Pack="true" PackagePath="lib\netstandard2.1\_._" />
</ItemGroup> </ItemGroup>

3
test/OpenIddict.Abstractions.Tests/OpenIddict.Abstractions.Tests.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

3
test/OpenIddict.Core.Tests/OpenIddict.Core.Tests.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

3
test/OpenIddict.EntityFramework.Tests/OpenIddict.EntityFramework.Tests.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp3.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp3.1;net5.0</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

3
test/OpenIddict.EntityFrameworkCore.Tests/OpenIddict.EntityFrameworkCore.Tests.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

3
test/OpenIddict.MongoDb.Tests/OpenIddict.MongoDb.Tests.csproj

@ -1,10 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
<SignAssembly>false</SignAssembly> <SignAssembly>false</SignAssembly>
<PublicSign>false</PublicSign> <PublicSign>false</PublicSign>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

4
test/OpenIddict.Quartz.Tests/OpenIddict.Quartz.Tests.csproj

@ -1,9 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1</TargetFrameworks> <TargetFrameworks>net461;netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
<IsPackable>false</IsPackable>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

3
test/OpenIddict.Server.AspNetCore.IntegrationTests/OpenIddict.Server.AspNetCore.IntegrationTests.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;net472;net48;netcoreapp2.1;netcoreapp3.1</TargetFrameworks> <TargetFrameworks>net461;net472;net48;netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

12
test/OpenIddict.Server.AspNetCore.IntegrationTests/OpenIddictServerAspNetCoreIntegrationTests.cs

@ -529,8 +529,8 @@ namespace OpenIddict.Server.AspNetCore.IntegrationTests
var principal = new ClaimsPrincipal(identity); var principal = new ClaimsPrincipal(identity);
var properties = new AuthenticationProperties( var properties = new AuthenticationProperties(
items: new Dictionary<string, string>(), items: new Dictionary<string, string?>(),
parameters: new Dictionary<string, object> parameters: new Dictionary<string, object?>
{ {
["boolean_parameter"] = true, ["boolean_parameter"] = true,
["integer_parameter"] = 42, ["integer_parameter"] = 42,
@ -552,8 +552,8 @@ namespace OpenIddict.Server.AspNetCore.IntegrationTests
else if (context.Request.Path == "/signout/custom") else if (context.Request.Path == "/signout/custom")
{ {
var properties = new AuthenticationProperties( var properties = new AuthenticationProperties(
items: new Dictionary<string, string>(), items: new Dictionary<string, string?>(),
parameters: new Dictionary<string, object> parameters: new Dictionary<string, object?>
{ {
["boolean_parameter"] = true, ["boolean_parameter"] = true,
["integer_parameter"] = 42, ["integer_parameter"] = 42,
@ -573,13 +573,13 @@ namespace OpenIddict.Server.AspNetCore.IntegrationTests
else if (context.Request.Path == "/challenge/custom") else if (context.Request.Path == "/challenge/custom")
{ {
var properties = new AuthenticationProperties( var properties = new AuthenticationProperties(
items: new Dictionary<string, string> items: new Dictionary<string, string?>
{ {
[OpenIddictServerAspNetCoreConstants.Properties.Error] = "custom_error", [OpenIddictServerAspNetCoreConstants.Properties.Error] = "custom_error",
[OpenIddictServerAspNetCoreConstants.Properties.ErrorDescription] = "custom_error_description", [OpenIddictServerAspNetCoreConstants.Properties.ErrorDescription] = "custom_error_description",
[OpenIddictServerAspNetCoreConstants.Properties.ErrorUri] = "custom_error_uri" [OpenIddictServerAspNetCoreConstants.Properties.ErrorUri] = "custom_error_uri"
}, },
parameters: new Dictionary<string, object> parameters: new Dictionary<string, object?>
{ {
["boolean_parameter"] = true, ["boolean_parameter"] = true,
["integer_parameter"] = 42, ["integer_parameter"] = 42,

3
test/OpenIddict.Server.IntegrationTests/OpenIddict.Server.IntegrationTests.csproj

@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;net472;net48;netcoreapp2.1;netcoreapp3.1</TargetFrameworks> <TargetFrameworks>net461;net472;net48;netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

2
test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTestClient.cs

@ -422,7 +422,7 @@ namespace OpenIddict.Server.IntegrationTests
else if (string.Equals(message.Content?.Headers?.ContentType?.MediaType, "application/json", StringComparison.OrdinalIgnoreCase)) else if (string.Equals(message.Content?.Headers?.ContentType?.MediaType, "application/json", StringComparison.OrdinalIgnoreCase))
{ {
return await message.Content!.ReadFromJsonAsync<OpenIddictResponse>(); return (await message.Content!.ReadFromJsonAsync<OpenIddictResponse>())!;
} }
else if (string.Equals(message.Content?.Headers?.ContentType?.MediaType, "text/html", StringComparison.OrdinalIgnoreCase)) else if (string.Equals(message.Content?.Headers?.ContentType?.MediaType, "text/html", StringComparison.OrdinalIgnoreCase))

1
test/OpenIddict.Server.Owin.IntegrationTests/OpenIddict.Server.Owin.IntegrationTests.csproj

@ -2,7 +2,6 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;net472;net48</TargetFrameworks> <TargetFrameworks>net461;net472;net48</TargetFrameworks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

4
test/OpenIddict.Server.Tests/OpenIddict.Server.Tests.csproj

@ -1,9 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net461;net472;netcoreapp2.1;netcoreapp3.1</TargetFrameworks> <TargetFrameworks>net461;net472;netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
<IsPackable>false</IsPackable>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

Loading…
Cancel
Save