diff --git a/BFF/v4/Angular/Angular.Api/Angular.Api.csproj b/BFF/v4/Angular/Angular.Api/Angular.Api.csproj
index 580b2c3a..f340ba06 100644
--- a/BFF/v4/Angular/Angular.Api/Angular.Api.csproj
+++ b/BFF/v4/Angular/Angular.Api/Angular.Api.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/BFF/v4/Angular/Angular.Bff/Angular.Bff.csproj b/BFF/v4/Angular/Angular.Bff/Angular.Bff.csproj
index b9046027..68db39b9 100644
--- a/BFF/v4/Angular/Angular.Bff/Angular.Bff.csproj
+++ b/BFF/v4/Angular/Angular.Bff/Angular.Bff.csproj
@@ -18,9 +18,8 @@
-
+
- 10.0.2
diff --git a/BFF/v4/BlazorAutoRendering/BlazorAutoRendering.Api/BlazorAutoRendering.Api.csproj b/BFF/v4/BlazorAutoRendering/BlazorAutoRendering.Api/BlazorAutoRendering.Api.csproj
index 69e419c6..8db8131f 100644
--- a/BFF/v4/BlazorAutoRendering/BlazorAutoRendering.Api/BlazorAutoRendering.Api.csproj
+++ b/BFF/v4/BlazorAutoRendering/BlazorAutoRendering.Api/BlazorAutoRendering.Api.csproj
@@ -6,8 +6,8 @@
-
-
-
+
+
+
diff --git a/BFF/v4/BlazorAutoRendering/BlazorAutoRendering.Client/BlazorAutoRendering.Client.csproj b/BFF/v4/BlazorAutoRendering/BlazorAutoRendering.Client/BlazorAutoRendering.Client.csproj
index ed5374eb..ff4cca2e 100644
--- a/BFF/v4/BlazorAutoRendering/BlazorAutoRendering.Client/BlazorAutoRendering.Client.csproj
+++ b/BFF/v4/BlazorAutoRendering/BlazorAutoRendering.Client/BlazorAutoRendering.Client.csproj
@@ -9,9 +9,9 @@
-
-
-
+
+
+
diff --git a/BFF/v4/BlazorAutoRendering/BlazorAutoRendering/BlazorAutoRendering.csproj b/BFF/v4/BlazorAutoRendering/BlazorAutoRendering/BlazorAutoRendering.csproj
index ed8da142..5ff8e9ad 100644
--- a/BFF/v4/BlazorAutoRendering/BlazorAutoRendering/BlazorAutoRendering.csproj
+++ b/BFF/v4/BlazorAutoRendering/BlazorAutoRendering/BlazorAutoRendering.csproj
@@ -8,10 +8,10 @@
-
-
-
-
+
+
+
+
diff --git a/BFF/v4/BlazorWasm/BFF/BFF.csproj b/BFF/v4/BlazorWasm/BFF/BFF.csproj
index 01065634..5cb31350 100644
--- a/BFF/v4/BlazorWasm/BFF/BFF.csproj
+++ b/BFF/v4/BlazorWasm/BFF/BFF.csproj
@@ -11,9 +11,9 @@
-
-
-
+
+
+
diff --git a/BFF/v4/BlazorWasm/BlazorWasm/BlazorWasm.csproj b/BFF/v4/BlazorWasm/BlazorWasm/BlazorWasm.csproj
index 052f812b..855c5b6e 100644
--- a/BFF/v4/BlazorWasm/BlazorWasm/BlazorWasm.csproj
+++ b/BFF/v4/BlazorWasm/BlazorWasm/BlazorWasm.csproj
@@ -8,10 +8,10 @@
-
-
-
-
+
+
+
+
diff --git a/BFF/v4/DPoP/DPoP.Api/DPoP.Api.csproj b/BFF/v4/DPoP/DPoP.Api/DPoP.Api.csproj
index b317d3bc..f088a194 100644
--- a/BFF/v4/DPoP/DPoP.Api/DPoP.Api.csproj
+++ b/BFF/v4/DPoP/DPoP.Api/DPoP.Api.csproj
@@ -6,8 +6,8 @@
-
-
-
+
+
+
diff --git a/BFF/v4/DPoP/DPoP.Api/DPoP/DPoPExtensions.cs b/BFF/v4/DPoP/DPoP.Api/DPoP/DPoPExtensions.cs
index 0bd8651e..c986353b 100644
--- a/BFF/v4/DPoP/DPoP.Api/DPoP/DPoPExtensions.cs
+++ b/BFF/v4/DPoP/DPoP.Api/DPoP/DPoPExtensions.cs
@@ -1,8 +1,9 @@
// Copyright (c) Duende Software. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.
+using System.Buffers.Text;
using System.Text.Json;
-using IdentityModel;
+using Duende.IdentityModel;
using Microsoft.AspNetCore.Authentication;
using Microsoft.IdentityModel.Tokens;
@@ -75,7 +76,7 @@ public static string CreateThumbprintCnf(this JsonWebKey jwk)
///
public static string CreateThumbprint(this JsonWebKey jwk)
{
- var jkt = Base64Url.Encode(jwk.ComputeJwkThumbprint());
+ var jkt = Base64Url.EncodeToString(jwk.ComputeJwkThumbprint());
return jkt;
}
}
diff --git a/BFF/v4/DPoP/DPoP.Api/DPoP/DPoPJwtBearerEvents.cs b/BFF/v4/DPoP/DPoP.Api/DPoP/DPoPJwtBearerEvents.cs
index 179ed2c8..79005eea 100644
--- a/BFF/v4/DPoP/DPoP.Api/DPoP/DPoPJwtBearerEvents.cs
+++ b/BFF/v4/DPoP/DPoP.Api/DPoP/DPoPJwtBearerEvents.cs
@@ -2,11 +2,10 @@
// Licensed under the MIT License. See LICENSE in the project root for license information.
using System.Text;
-using IdentityModel;
+using Duende.IdentityModel;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.Extensions.Options;
using Microsoft.Net.Http.Headers;
-using static IdentityModel.OidcConstants;
namespace DPoP.Api;
@@ -75,7 +74,7 @@ public override async Task TokenValidated(TokenValidatedContext context)
else if (dpopOptions.Mode == DPoPMode.DPoPAndBearer)
{
// if the scheme used was not DPoP, then it was Bearer
- // and if a access token was presented with a cnf, then the
+ // and if a access token was presented with a cnf, then the
// client should have sent it as DPoP, so we fail the request
if (context.Principal.HasClaim(x => x.Type == JwtClaimTypes.Confirmation))
{
@@ -138,14 +137,14 @@ public override Task Challenge(JwtBearerChallengeContext context)
if (context.HttpContext.Items.ContainsKey("DPoP-Nonce"))
{
var nonce = context.HttpContext.Items["DPoP-Nonce"] as string;
- context.Response.Headers[HttpHeaders.DPoPNonce] = nonce;
+ context.Response.Headers[OidcConstants.HttpHeaders.DPoPNonce] = nonce;
}
else
{
var nonce = context.Properties.GetDPoPNonce();
if (nonce != null)
{
- context.Response.Headers[HttpHeaders.DPoPNonce] = nonce;
+ context.Response.Headers[OidcConstants.HttpHeaders.DPoPNonce] = nonce;
}
}
diff --git a/BFF/v4/DPoP/DPoP.Api/DPoP/DPoPProofValidator.cs b/BFF/v4/DPoP/DPoP.Api/DPoP/DPoPProofValidator.cs
index f5a88217..e589007b 100644
--- a/BFF/v4/DPoP/DPoP.Api/DPoP/DPoPProofValidator.cs
+++ b/BFF/v4/DPoP/DPoP.Api/DPoP/DPoPProofValidator.cs
@@ -1,10 +1,11 @@
// Copyright (c) Duende Software. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.
+using System.Buffers.Text;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
-using IdentityModel;
+using Duende.IdentityModel;
using Microsoft.AspNetCore.DataProtection;
using Microsoft.Extensions.Options;
using Microsoft.IdentityModel.JsonWebTokens;
@@ -226,7 +227,7 @@ protected virtual async Task ValidatePayloadAsync(DPoPProofValidatonContext cont
var bytes = Encoding.UTF8.GetBytes(context.AccessToken);
var hash = sha.ComputeHash(bytes);
- var accessTokenHash = Base64Url.Encode(hash);
+ var accessTokenHash = Base64Url.EncodeToString(hash);
if (accessTokenHash != result.AccessTokenHash)
{
result.IsError = true;
@@ -328,7 +329,7 @@ protected virtual async Task ValidateReplayAsync(DPoPProofValidatonContext conte
skew = dpopOptions.ServerClockSkew;
}
- // we do x2 here because clock might be might be before or after, so we're making cache duration
+ // we do x2 here because clock might be might be before or after, so we're making cache duration
// longer than the likelyhood of proof token expiration, which is done before replay
skew *= 2;
var cacheDuration = dpopOptions.ProofTokenValidityDuration + skew;
diff --git a/BFF/v4/DPoP/DPoP.Bff/DPoP.Bff.csproj b/BFF/v4/DPoP/DPoP.Bff/DPoP.Bff.csproj
index 682119d7..3d5d2172 100644
--- a/BFF/v4/DPoP/DPoP.Bff/DPoP.Bff.csproj
+++ b/BFF/v4/DPoP/DPoP.Bff/DPoP.Bff.csproj
@@ -8,8 +8,8 @@
-
-
-
+
+
+
diff --git a/BFF/v4/Directory.Packages.props b/BFF/v4/Directory.Packages.props
new file mode 100644
index 00000000..c4350b2f
--- /dev/null
+++ b/BFF/v4/Directory.Packages.props
@@ -0,0 +1,37 @@
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BFF/v4/JsBffSample/BackendApiHost/BackendApiHost.csproj b/BFF/v4/JsBffSample/BackendApiHost/BackendApiHost.csproj
index de1d444d..992fc7ab 100644
--- a/BFF/v4/JsBffSample/BackendApiHost/BackendApiHost.csproj
+++ b/BFF/v4/JsBffSample/BackendApiHost/BackendApiHost.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/BFF/v4/JsBffSample/FrontendHost/FrontendHost.csproj b/BFF/v4/JsBffSample/FrontendHost/FrontendHost.csproj
index 77e168e5..d4140dc6 100644
--- a/BFF/v4/JsBffSample/FrontendHost/FrontendHost.csproj
+++ b/BFF/v4/JsBffSample/FrontendHost/FrontendHost.csproj
@@ -6,10 +6,10 @@
-
-
+
+
-
+
diff --git a/BFF/v4/JsBffYarpSample/BackendApiHost/BackendApiHost.csproj b/BFF/v4/JsBffYarpSample/BackendApiHost/BackendApiHost.csproj
index de1d444d..992fc7ab 100644
--- a/BFF/v4/JsBffYarpSample/BackendApiHost/BackendApiHost.csproj
+++ b/BFF/v4/JsBffYarpSample/BackendApiHost/BackendApiHost.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/BFF/v4/JsBffYarpSample/FrontendHost/FrontendHost.csproj b/BFF/v4/JsBffYarpSample/FrontendHost/FrontendHost.csproj
index 4ca1c00d..dde356cc 100644
--- a/BFF/v4/JsBffYarpSample/FrontendHost/FrontendHost.csproj
+++ b/BFF/v4/JsBffYarpSample/FrontendHost/FrontendHost.csproj
@@ -6,8 +6,8 @@
-
-
+
+
diff --git a/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.Client/MultiFrontendSSO.Client.csproj b/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.Client/MultiFrontendSSO.Client.csproj
index 905e61ee..b6be22dc 100644
--- a/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.Client/MultiFrontendSSO.Client.csproj
+++ b/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.Client/MultiFrontendSSO.Client.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/MultiFrontendSSO.IdentityServer.csproj b/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/MultiFrontendSSO.IdentityServer.csproj
index 4b0baed9..65c62be2 100644
--- a/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/MultiFrontendSSO.IdentityServer.csproj
+++ b/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/MultiFrontendSSO.IdentityServer.csproj
@@ -7,9 +7,9 @@
-
-
-
+
+
+
diff --git a/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/Account/Logout/Index.cshtml.cs b/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/Account/Logout/Index.cshtml.cs
index 3f20e482..5bf0ca41 100644
--- a/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/Account/Logout/Index.cshtml.cs
+++ b/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/Account/Logout/Index.cshtml.cs
@@ -1,10 +1,10 @@
// Copyright (c) Duende Software. All rights reserved.
// See LICENSE in the project root for license information.
+using Duende.IdentityModel;
using Duende.IdentityServer.Events;
using Duende.IdentityServer.Extensions;
using Duende.IdentityServer.Services;
-using IdentityModel;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
diff --git a/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/Consent/Index.cshtml.cs b/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/Consent/Index.cshtml.cs
index e35b900c..77093bbe 100644
--- a/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/Consent/Index.cshtml.cs
+++ b/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/Consent/Index.cshtml.cs
@@ -1,12 +1,12 @@
// Copyright (c) Duende Software. All rights reserved.
// See LICENSE in the project root for license information.
+using Duende.IdentityModel;
using Duende.IdentityServer.Events;
using Duende.IdentityServer.Extensions;
using Duende.IdentityServer.Models;
using Duende.IdentityServer.Services;
using Duende.IdentityServer.Validation;
-using IdentityModel;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
diff --git a/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/Diagnostics/ViewModel.cs b/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/Diagnostics/ViewModel.cs
index 5dad2f59..7709c337 100644
--- a/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/Diagnostics/ViewModel.cs
+++ b/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/Diagnostics/ViewModel.cs
@@ -1,9 +1,9 @@
// Copyright (c) Duende Software. All rights reserved.
// See LICENSE in the project root for license information.
+using System.Buffers.Text;
using System.Text;
using System.Text.Json;
-using IdentityModel;
using Microsoft.AspNetCore.Authentication;
namespace IdentityServer.Pages.Diagnostics;
@@ -18,7 +18,7 @@ public ViewModel(AuthenticateResult result)
{
if (encoded != null)
{
- var bytes = Base64Url.Decode(encoded);
+ var bytes = Base64Url.DecodeFromChars(encoded);
var value = Encoding.UTF8.GetString(bytes);
Clients = JsonSerializer.Deserialize(value) ?? Enumerable.Empty();
return;
diff --git a/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/ExternalLogin/Callback.cshtml.cs b/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/ExternalLogin/Callback.cshtml.cs
index 2066b242..35fc89af 100644
--- a/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/ExternalLogin/Callback.cshtml.cs
+++ b/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/ExternalLogin/Callback.cshtml.cs
@@ -2,11 +2,11 @@
// See LICENSE in the project root for license information.
using System.Security.Claims;
+using Duende.IdentityModel;
using Duende.IdentityServer;
using Duende.IdentityServer.Events;
using Duende.IdentityServer.Services;
using Duende.IdentityServer.Test;
-using IdentityModel;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
diff --git a/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/TestUsers.cs b/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/TestUsers.cs
index 2109bd43..759be856 100644
--- a/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/TestUsers.cs
+++ b/BFF/v4/MultiFrontendSSO/MultiFrontendSSO.IdentityServer/Pages/TestUsers.cs
@@ -3,9 +3,9 @@
using System.Security.Claims;
using System.Text.Json;
+using Duende.IdentityModel;
using Duende.IdentityServer;
using Duende.IdentityServer.Test;
-using IdentityModel;
namespace IdentityServer;
diff --git a/BFF/v4/OpenApi/OpenApi.Api1/OpenApi.Api1.csproj b/BFF/v4/OpenApi/OpenApi.Api1/OpenApi.Api1.csproj
index af9432af..38419615 100644
--- a/BFF/v4/OpenApi/OpenApi.Api1/OpenApi.Api1.csproj
+++ b/BFF/v4/OpenApi/OpenApi.Api1/OpenApi.Api1.csproj
@@ -8,8 +8,8 @@
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/BFF/v4/OpenApi/OpenApi.Api2/OpenApi.Api2.csproj b/BFF/v4/OpenApi/OpenApi.Api2/OpenApi.Api2.csproj
index a301c0d9..0c09744a 100644
--- a/BFF/v4/OpenApi/OpenApi.Api2/OpenApi.Api2.csproj
+++ b/BFF/v4/OpenApi/OpenApi.Api2/OpenApi.Api2.csproj
@@ -9,7 +9,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/BFF/v4/OpenApi/OpenApi.Bff/OpenApi.Bff.csproj b/BFF/v4/OpenApi/OpenApi.Bff/OpenApi.Bff.csproj
index 1dfbf399..c865b075 100644
--- a/BFF/v4/OpenApi/OpenApi.Bff/OpenApi.Bff.csproj
+++ b/BFF/v4/OpenApi/OpenApi.Bff/OpenApi.Bff.csproj
@@ -7,11 +7,11 @@
-
-
-
+
+
+
-
+
diff --git a/BFF/v4/OpenApi/OpenApi.BffOpenApiDocumentParser/OpenApi.BffOpenApiDocumentParser.csproj b/BFF/v4/OpenApi/OpenApi.BffOpenApiDocumentParser/OpenApi.BffOpenApiDocumentParser.csproj
index 4316d4a4..b2529d7f 100644
--- a/BFF/v4/OpenApi/OpenApi.BffOpenApiDocumentParser/OpenApi.BffOpenApiDocumentParser.csproj
+++ b/BFF/v4/OpenApi/OpenApi.BffOpenApiDocumentParser/OpenApi.BffOpenApiDocumentParser.csproj
@@ -7,7 +7,7 @@
enable
-
-
+
+
diff --git a/BFF/v4/OpenApi/OpenApi.DevServer.AppHost/OpenApi.DevServer.AppHost.csproj b/BFF/v4/OpenApi/OpenApi.DevServer.AppHost/OpenApi.DevServer.AppHost.csproj
index 1d7799ae..295a0ffc 100644
--- a/BFF/v4/OpenApi/OpenApi.DevServer.AppHost/OpenApi.DevServer.AppHost.csproj
+++ b/BFF/v4/OpenApi/OpenApi.DevServer.AppHost/OpenApi.DevServer.AppHost.csproj
@@ -1,6 +1,4 @@
-
-
-
+
Exe
@@ -11,15 +9,11 @@
3ff4ee13-d005-4899-9f8f-62c60bfef868
-
-
-
-
-
+
diff --git a/BFF/v4/OpenApi/OpenApi.DevServer.ServiceDefaults/OpenApi.DevServer.ServiceDefaults.csproj b/BFF/v4/OpenApi/OpenApi.DevServer.ServiceDefaults/OpenApi.DevServer.ServiceDefaults.csproj
index 6cb3b1b7..50def745 100644
--- a/BFF/v4/OpenApi/OpenApi.DevServer.ServiceDefaults/OpenApi.DevServer.ServiceDefaults.csproj
+++ b/BFF/v4/OpenApi/OpenApi.DevServer.ServiceDefaults/OpenApi.DevServer.ServiceDefaults.csproj
@@ -10,17 +10,17 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
diff --git a/BFF/v4/Quickstarts/BlazorBffApp/BlazorBffApp.Client/BlazorBffApp.Client.csproj b/BFF/v4/Quickstarts/BlazorBffApp/BlazorBffApp.Client/BlazorBffApp.Client.csproj
index 2e660481..a5a5fde3 100644
--- a/BFF/v4/Quickstarts/BlazorBffApp/BlazorBffApp.Client/BlazorBffApp.Client.csproj
+++ b/BFF/v4/Quickstarts/BlazorBffApp/BlazorBffApp.Client/BlazorBffApp.Client.csproj
@@ -9,8 +9,8 @@
-
-
+
+
diff --git a/BFF/v4/Quickstarts/BlazorBffApp/BlazorBffApp/BlazorBffApp.csproj b/BFF/v4/Quickstarts/BlazorBffApp/BlazorBffApp/BlazorBffApp.csproj
index 2971b4e9..a18632d1 100644
--- a/BFF/v4/Quickstarts/BlazorBffApp/BlazorBffApp/BlazorBffApp.csproj
+++ b/BFF/v4/Quickstarts/BlazorBffApp/BlazorBffApp/BlazorBffApp.csproj
@@ -7,9 +7,9 @@
-
+
-
+
diff --git a/BFF/v4/React/React.Api/React.Api.csproj b/BFF/v4/React/React.Api/React.Api.csproj
index 8248e4b1..f340ba06 100644
--- a/BFF/v4/React/React.Api/React.Api.csproj
+++ b/BFF/v4/React/React.Api/React.Api.csproj
@@ -1,14 +1,14 @@
- net8.0
+ net10.0
enable
enable
true
-
+
diff --git a/BFF/v4/React/React.Bff/React.Bff.csproj b/BFF/v4/React/React.Bff/React.Bff.csproj
index 6cf930c4..59de328b 100644
--- a/BFF/v4/React/React.Bff/React.Bff.csproj
+++ b/BFF/v4/React/React.Bff/React.Bff.csproj
@@ -18,11 +18,10 @@
- 10.0.2
-
-
-
+
+
+
diff --git a/BFF/v4/SplitHosts/BackendApiHost/BackendApiHost.csproj b/BFF/v4/SplitHosts/BackendApiHost/BackendApiHost.csproj
index de1d444d..992fc7ab 100644
--- a/BFF/v4/SplitHosts/BackendApiHost/BackendApiHost.csproj
+++ b/BFF/v4/SplitHosts/BackendApiHost/BackendApiHost.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/BFF/v4/SplitHosts/BackendHost/BackendHost.csproj b/BFF/v4/SplitHosts/BackendHost/BackendHost.csproj
index 83ea05cd..1ca97f68 100644
--- a/BFF/v4/SplitHosts/BackendHost/BackendHost.csproj
+++ b/BFF/v4/SplitHosts/BackendHost/BackendHost.csproj
@@ -7,9 +7,9 @@
-
-
+
+
-
+
diff --git a/BFF/v4/TokenExchange/TokenExchange.Api/TokenExchange.Api.csproj b/BFF/v4/TokenExchange/TokenExchange.Api/TokenExchange.Api.csproj
index 95b71224..8db8131f 100644
--- a/BFF/v4/TokenExchange/TokenExchange.Api/TokenExchange.Api.csproj
+++ b/BFF/v4/TokenExchange/TokenExchange.Api/TokenExchange.Api.csproj
@@ -6,8 +6,8 @@
-
-
-
+
+
+
diff --git a/BFF/v4/TokenExchange/TokenExchange.Bff/TokenExchange.Bff.csproj b/BFF/v4/TokenExchange/TokenExchange.Bff/TokenExchange.Bff.csproj
index c3d15761..ed52bdd6 100644
--- a/BFF/v4/TokenExchange/TokenExchange.Bff/TokenExchange.Bff.csproj
+++ b/BFF/v4/TokenExchange/TokenExchange.Bff/TokenExchange.Bff.csproj
@@ -8,9 +8,9 @@
-
-
-
+
+
+
diff --git a/BFF/v4/TokenExchange/TokenExchange.IdentityServer/TokenExchange.IdentityServer.csproj b/BFF/v4/TokenExchange/TokenExchange.IdentityServer/TokenExchange.IdentityServer.csproj
index 0423fa9a..aeb0b336 100644
--- a/BFF/v4/TokenExchange/TokenExchange.IdentityServer/TokenExchange.IdentityServer.csproj
+++ b/BFF/v4/TokenExchange/TokenExchange.IdentityServer/TokenExchange.IdentityServer.csproj
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/BFF/v4/Vue/Vue.Api/Vue.Api.csproj b/BFF/v4/Vue/Vue.Api/Vue.Api.csproj
index d1e31de5..9adf5c0a 100644
--- a/BFF/v4/Vue/Vue.Api/Vue.Api.csproj
+++ b/BFF/v4/Vue/Vue.Api/Vue.Api.csproj
@@ -8,9 +8,9 @@
-
-
-
+
+
+
diff --git a/BFF/v4/Vue/Vue.Bff/Vue.Bff.csproj b/BFF/v4/Vue/Vue.Bff/Vue.Bff.csproj
index 785004c4..f84a78bf 100644
--- a/BFF/v4/Vue/Vue.Bff/Vue.Bff.csproj
+++ b/BFF/v4/Vue/Vue.Bff/Vue.Bff.csproj
@@ -12,10 +12,10 @@
-
-
-
-
+
+
+
+
diff --git a/BFF/v4/docker/ContainerizedIdentityServer/ContainerizedIdentityServer.csproj b/BFF/v4/docker/ContainerizedIdentityServer/ContainerizedIdentityServer.csproj
index 0ed15fe6..25883476 100644
--- a/BFF/v4/docker/ContainerizedIdentityServer/ContainerizedIdentityServer.csproj
+++ b/BFF/v4/docker/ContainerizedIdentityServer/ContainerizedIdentityServer.csproj
@@ -8,10 +8,10 @@
-
+
-
-
+
+
diff --git a/BFF/v4/docker/FrontendHost/FrontendHost.csproj b/BFF/v4/docker/FrontendHost/FrontendHost.csproj
index 6024a720..f93c12ab 100644
--- a/BFF/v4/docker/FrontendHost/FrontendHost.csproj
+++ b/BFF/v4/docker/FrontendHost/FrontendHost.csproj
@@ -7,10 +7,10 @@
-
-
+
+
-
+
diff --git a/samples.slnx b/samples.slnx
index d803b150..579bddcc 100644
--- a/samples.slnx
+++ b/samples.slnx
@@ -91,7 +91,9 @@
-
+
+
+
@@ -110,6 +112,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -124,6 +138,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+