diff --git a/src/Umbraco.Core/Extensions/ClaimsIdentityExtensions.cs b/src/Umbraco.Core/Extensions/ClaimsIdentityExtensions.cs
index 62da5b0bf8..7569b64cb7 100644
--- a/src/Umbraco.Core/Extensions/ClaimsIdentityExtensions.cs
+++ b/src/Umbraco.Core/Extensions/ClaimsIdentityExtensions.cs
@@ -324,5 +324,22 @@ namespace Umbraco.Extensions
/// Array of roles
public static string[] GetRoles(this ClaimsIdentity identity) => identity
.FindAll(x => x.Type == ClaimsIdentity.DefaultRoleClaimType).Select(role => role.Value).ToArray();
+
+
+ ///
+ /// Adds or updates and existing claim.
+ ///
+ public static void AddOrUpdateClaim(this ClaimsIdentity identity, Claim claim)
+ {
+ if (identity == null)
+ {
+ throw new ArgumentNullException(nameof(identity));
+ }
+
+ Claim existingClaim = identity.Claims.FirstOrDefault(x => x.Type == claim.Type);
+ identity.TryRemoveClaim(existingClaim);
+
+ identity.AddClaim(claim);
+ }
}
}
diff --git a/src/Umbraco.Web.BackOffice/Security/ConfigureBackOfficeCookieOptions.cs b/src/Umbraco.Web.BackOffice/Security/ConfigureBackOfficeCookieOptions.cs
index 248fd72ac2..9e9549134e 100644
--- a/src/Umbraco.Web.BackOffice/Security/ConfigureBackOfficeCookieOptions.cs
+++ b/src/Umbraco.Web.BackOffice/Security/ConfigureBackOfficeCookieOptions.cs
@@ -15,7 +15,6 @@ using Umbraco.Cms.Core.Routing;
using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Core.Web;
using Umbraco.Extensions;
-using Constants = Umbraco.Cms.Core.Constants;
namespace Umbraco.Cms.Web.BackOffice.Security
{
@@ -149,8 +148,8 @@ namespace Umbraco.Cms.Web.BackOffice.Security
await securityStampValidator.ValidateAsync(ctx);
EnsureTicketRenewalIfKeepUserLoggedIn(ctx);
- // add a claim to track when the cookie expires, we use this to track time remaining
- backOfficeIdentity.AddClaim(new Claim(
+ // add or update a claim to track when the cookie expires, we use this to track time remaining
+ backOfficeIdentity.AddOrUpdateClaim(new Claim(
Constants.Security.TicketExpiresClaimType,
ctx.Properties.ExpiresUtc.Value.ToString("o"),
ClaimValueTypes.DateTime,