Merge remote-tracking branch 'origin/v13/dev' into v15/merge-from-13

This commit is contained in:
Andy Butland
2025-03-05 06:46:13 +01:00
6 changed files with 138 additions and 9 deletions

View File

@@ -68,7 +68,13 @@ public static class HttpContextExtensions
// Otherwise we can't log in as both a member and a backoffice user
// For instance if you've enabled basic auth.
ClaimsPrincipal? authenticatedPrincipal = result.Principal;
IEnumerable<ClaimsIdentity> existingIdentities = httpContext.User.Identities.Where(x => x.IsAuthenticated && x.AuthenticationType != authenticatedPrincipal.Identity.AuthenticationType);
// Make sure to copy into a list before attempting to update the authenticated principal, so we don't attempt to modify
// the collection while iterating it.
// See: https://github.com/umbraco/Umbraco-CMS/issues/18509
var existingIdentities = httpContext.User.Identities
.Where(x => x.IsAuthenticated && x.AuthenticationType != authenticatedPrincipal.Identity.AuthenticationType)
.ToList();
authenticatedPrincipal.AddIdentities(existingIdentities);
httpContext.User = authenticatedPrincipal;