|
|
|
@ -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); |
|
|
|
} |
|
|
|
} |
|
|
|
|