diff --git a/Oqtane.Client/Modules/Admin/Users/Index.razor b/Oqtane.Client/Modules/Admin/Users/Index.razor index 650d9c54..0d4708fd 100644 --- a/Oqtane.Client/Modules/Admin/Users/Index.razor +++ b/Oqtane.Client/Modules/Admin/Users/Index.razor @@ -6,6 +6,7 @@ @inject ISiteService SiteService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer +@inject SiteState SiteState @if (userroles == null) { @@ -536,6 +537,11 @@ else await SettingService.UpdateSiteSettingsAsync(settings, site.SiteId); await SettingService.ClearSiteSettingsCacheAsync(); + if (!string.IsNullOrEmpty(_secret)) + { + SiteState.AuthorizationToken = await UserService.GetTokenAsync(); + } + AddModuleMessage(Localizer["Success.SaveSiteSettings"], MessageType.Success); } catch (Exception ex) diff --git a/Oqtane.Server/Extensions/OqtaneSiteAuthenticationBuilderExtensions.cs b/Oqtane.Server/Extensions/OqtaneSiteAuthenticationBuilderExtensions.cs index ce34632f..6b22574a 100644 --- a/Oqtane.Server/Extensions/OqtaneSiteAuthenticationBuilderExtensions.cs +++ b/Oqtane.Server/Extensions/OqtaneSiteAuthenticationBuilderExtensions.cs @@ -192,6 +192,7 @@ namespace Oqtane.Extensions var _users = httpContext.RequestServices.GetRequiredService(); var _userRoles = httpContext.RequestServices.GetRequiredService(); var providerType = httpContext.GetSiteSettings().GetValue("ExternalLogin:ProviderType", ""); + var providerName = httpContext.GetSiteSettings().GetValue("ExternalLogin:ProviderName", ""); var providerKey = claimsPrincipal.FindFirstValue(ClaimTypes.NameIdentifier); if (providerKey == null) { @@ -288,7 +289,7 @@ namespace Oqtane.Extensions // add user login await _identityUserManager.AddLoginAsync(identityuser, new UserLoginInfo(providerType, providerKey, "")); user = _users.GetUser(identityuser.UserName); - _logger.Log(user.SiteId, LogLevel.Information, "ExternalLogin", Enums.LogFunction.Create, "External User Login Added For {Email} Using Provider {Provider}", email, providerType); + _logger.Log(user.SiteId, LogLevel.Information, "ExternalLogin", Enums.LogFunction.Create, "External User Login Added For {Email} Using Provider {Provider}", email, providerName); } } @@ -304,7 +305,7 @@ namespace Oqtane.Extensions user.LastLoginOn = DateTime.UtcNow; user.LastIPAddress = httpContext.Connection.RemoteIpAddress.ToString(); _users.UpdateUser(user); - _logger.Log(LogLevel.Information, "ExternalLogin", Enums.LogFunction.Security, "External User Login Successful For {Username} Using Provider {Provider}", user.Username, providerType); + _logger.Log(LogLevel.Information, "ExternalLogin", Enums.LogFunction.Security, "External User Login Successful For {Username} Using Provider {Provider}", user.Username, providerName); } else // user not valid { diff --git a/Oqtane.Server/Infrastructure/DatabaseManager.cs b/Oqtane.Server/Infrastructure/DatabaseManager.cs index 21726ef2..40b56608 100644 --- a/Oqtane.Server/Infrastructure/DatabaseManager.cs +++ b/Oqtane.Server/Infrastructure/DatabaseManager.cs @@ -715,7 +715,7 @@ namespace Oqtane.Infrastructure { try { - var obj = Activator.CreateInstance(upgrade.Value) as ISiteMigration; + var obj = ActivatorUtilities.CreateInstance(scope.ServiceProvider, upgrade.Value) as ISiteMigration; if (obj != null) { obj.Up(site, alias); diff --git a/Oqtane.Shared/Security/UserSecurity.cs b/Oqtane.Shared/Security/UserSecurity.cs index 70f43f55..f57d4388 100644 --- a/Oqtane.Shared/Security/UserSecurity.cs +++ b/Oqtane.Shared/Security/UserSecurity.cs @@ -155,26 +155,11 @@ namespace Oqtane.Security public static void ResetClaimsIdentity(ClaimsIdentity identity) { - var claim = identity.Claims.FirstOrDefault(item => item.Type == ClaimTypes.Name); - if (claim != null) + var claims = identity.Claims.ToList(); // clone + foreach (var claim in claims) { identity.RemoveClaim(claim); } - claim = identity.Claims.FirstOrDefault(item => item.Type == ClaimTypes.NameIdentifier); - if (claim != null) - { - identity.RemoveClaim(claim); - } - claim = identity.Claims.FirstOrDefault(item => item.Type == "sitekey"); - if (claim != null) - { - identity.RemoveClaim(claim); - } - var roles = identity.Claims.Where(item => item.Type == ClaimTypes.Role); - foreach (var role in roles) - { - identity.RemoveClaim(role); - } } } }