From cf3a86dc4ae039b3b9989edd311df6c8da2d7b7e Mon Sep 17 00:00:00 2001 From: sbwalker Date: Wed, 22 Oct 2025 16:39:52 -0400 Subject: [PATCH] hack to get Passkeys working --- .../Extensions/OqtaneServiceCollectionExtensions.cs | 6 +----- Oqtane.Server/Repository/Context/TenantDBContext.cs | 9 +++++++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Oqtane.Server/Extensions/OqtaneServiceCollectionExtensions.cs b/Oqtane.Server/Extensions/OqtaneServiceCollectionExtensions.cs index 78435c6a..115abee0 100644 --- a/Oqtane.Server/Extensions/OqtaneServiceCollectionExtensions.cs +++ b/Oqtane.Server/Extensions/OqtaneServiceCollectionExtensions.cs @@ -84,11 +84,7 @@ namespace Microsoft.Extensions.DependencyInjection options.Cookie.HttpOnly = true; }); - services.AddIdentityCore(options => - { - // must be set prior to AddEntityFrameworkStores - options.Stores.SchemaVersion = IdentitySchemaVersions.Version3; - }) + services.AddIdentityCore(options => { }) .AddEntityFrameworkStores() .AddSignInManager() .AddDefaultTokenProviders() diff --git a/Oqtane.Server/Repository/Context/TenantDBContext.cs b/Oqtane.Server/Repository/Context/TenantDBContext.cs index a764e85e..e8b1bb3d 100644 --- a/Oqtane.Server/Repository/Context/TenantDBContext.cs +++ b/Oqtane.Server/Repository/Context/TenantDBContext.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; using Oqtane.Databases.Interfaces; using Oqtane.Extensions; using Oqtane.Infrastructure; @@ -42,6 +43,14 @@ namespace Oqtane.Repository { optionsBuilder.ReplaceService(); + // specify the SchemaVersion for .NET Identity as it is not being persisted when using AddIdentityCore() + var services = new ServiceCollection(); + services.AddIdentityCore(options => + { + options.Stores.SchemaVersion = IdentitySchemaVersions.Version3; + }); + optionsBuilder.UseApplicationServiceProvider(services.BuildServiceProvider()); + if (string.IsNullOrEmpty(_connectionString)) { Tenant tenant = _tenantManager.GetTenant();