diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClient.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClient.cs index 5d87371ae8..8478cc49cb 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClient.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClient.cs @@ -16,7 +16,7 @@ namespace Volo.Abp.AspNetCore.Mvc.Client; public class MvcCachedApplicationConfigurationClient : ICachedApplicationConfigurationClient, ITransientDependency { - private const string ApplicationConfigurationDtoCacheKey = "ApplicationConfigurationDto_CacheKey"; + private const string HttpContextItemsCacheKeyFormat = "ApplicationConfigurationDto_{0}_{1}_CacheKey"; protected IHttpContextAccessor HttpContextAccessor { get; } protected AbpApplicationConfigurationClientProxy ApplicationConfigurationAppService { get; } @@ -48,7 +48,8 @@ public class MvcCachedApplicationConfigurationClient : ICachedApplicationConfigu { string? cacheKey = null; var httpContext = HttpContextAccessor?.HttpContext; - if (httpContext != null && httpContext.Items[ApplicationConfigurationDtoCacheKey] is string key) + var itemsKey = GetHttpContextItemsCacheKey(); + if (httpContext != null && httpContext.Items[itemsKey] is string key) { cacheKey = key; } @@ -58,7 +59,7 @@ public class MvcCachedApplicationConfigurationClient : ICachedApplicationConfigu cacheKey = await CreateCacheKeyAsync(); if (httpContext != null) { - httpContext.Items[ApplicationConfigurationDtoCacheKey] = cacheKey; + httpContext.Items[itemsKey] = cacheKey; } } @@ -128,7 +129,8 @@ public class MvcCachedApplicationConfigurationClient : ICachedApplicationConfigu { string? cacheKey = null; var httpContext = HttpContextAccessor?.HttpContext; - if (httpContext != null && httpContext.Items[ApplicationConfigurationDtoCacheKey] is string key) + var itemsKey = GetHttpContextItemsCacheKey(); + if (httpContext != null && httpContext.Items[itemsKey] is string key) { cacheKey = key; } @@ -138,7 +140,7 @@ public class MvcCachedApplicationConfigurationClient : ICachedApplicationConfigu cacheKey = AsyncHelper.RunSync(CreateCacheKeyAsync); if (httpContext != null) { - httpContext.Items[ApplicationConfigurationDtoCacheKey] = cacheKey; + httpContext.Items[itemsKey] = cacheKey; } } @@ -154,4 +156,9 @@ public class MvcCachedApplicationConfigurationClient : ICachedApplicationConfigu { return await CacheHelper.CreateCacheKeyAsync(CurrentUser.Id); } + + protected virtual string GetHttpContextItemsCacheKey() + { + return string.Format(CultureInfo.InvariantCulture, HttpContextItemsCacheKeyFormat, CurrentUser.Id?.ToString("N") ?? "Anonymous", CultureInfo.CurrentUICulture.Name); + } }