From 461330773abea1ac09f7f12ab822b8e91db5d1c4 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Tue, 8 Jul 2025 16:04:19 -0400 Subject: [PATCH] resolve issue where IDP fails to provide email claim resulting in External Login Remote Failure due to dbo.AspNetUsers requiring a unique email value for each user --- Oqtane.Client/Modules/Admin/UserProfile/Index.razor | 5 ----- .../Resources/Modules/Admin/UserProfile/Index.resx | 3 --- Oqtane.Client/UI/ThemeBuilder.razor | 7 ------- .../OqtaneSiteAuthenticationBuilderExtensions.cs | 4 ++-- 4 files changed, 2 insertions(+), 17 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/UserProfile/Index.razor b/Oqtane.Client/Modules/Admin/UserProfile/Index.razor index 2517c538..377b27d8 100644 --- a/Oqtane.Client/Modules/Admin/UserProfile/Index.razor +++ b/Oqtane.Client/Modules/Admin/UserProfile/Index.razor @@ -414,11 +414,6 @@ _displayname = PageState.User.DisplayName; _timezoneid = PageState.User.TimeZoneId; - if (string.IsNullOrEmpty(_email)) - { - AddModuleMessage(Localizer["Message.User.NoEmail"], MessageType.Warning); - } - // get user folder var folder = await FolderService.GetFolderAsync(ModuleState.SiteId, PageState.User.FolderPath); if (folder != null) diff --git a/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx b/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx index d6136ee8..2a6862bb 100644 --- a/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx +++ b/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx @@ -147,9 +147,6 @@ Current User Is Not Logged In - - You Must Provide An Email Address For Your User Account - Error Loading User Profile diff --git a/Oqtane.Client/UI/ThemeBuilder.razor b/Oqtane.Client/UI/ThemeBuilder.razor index 6981b983..d22b21b4 100644 --- a/Oqtane.Client/UI/ThemeBuilder.razor +++ b/Oqtane.Client/UI/ThemeBuilder.razor @@ -20,13 +20,6 @@ return; } - // force authenticated user to provide email address (email may be missing if using external login) - if (PageState.User != null && PageState.User.IsAuthenticated && string.IsNullOrEmpty(PageState.User.Email) && PageState.Route.PagePath != "profile") - { - NavigationManager.NavigateTo(Utilities.NavigateUrl(PageState.Alias.Path, "profile", "returnurl=" + WebUtility.UrlEncode(PageState.Route.PathAndQuery))); - return; - } - // set page title if (!string.IsNullOrEmpty(PageState.Page.Title)) { diff --git a/Oqtane.Server/Extensions/OqtaneSiteAuthenticationBuilderExtensions.cs b/Oqtane.Server/Extensions/OqtaneSiteAuthenticationBuilderExtensions.cs index e98a0afa..f142c602 100644 --- a/Oqtane.Server/Extensions/OqtaneSiteAuthenticationBuilderExtensions.cs +++ b/Oqtane.Server/Extensions/OqtaneSiteAuthenticationBuilderExtensions.cs @@ -404,13 +404,13 @@ namespace Oqtane.Extensions else if (!string.IsNullOrEmpty(name)) // name claim provided { username = name.ToLower().Replace(" ", "") + DateTime.UtcNow.ToString("mmss"); - emailaddress = ""; // unknown - will need to be requested from user later + emailaddress = username + "@unknown.com"; displayname = name; } else // neither email nor name provided { username = Guid.NewGuid().ToString("N"); - emailaddress = ""; // unknown - will need to be requested from user later + emailaddress = username + "@unknown.com"; displayname = username; }