Hi, So that means there is no way to refresh the cache immediately, right?
Hi,
Can I use RefreshManyAsync
method of IDistributedCache<PermissionGrantCacheItem>
to refresh the cache whenever I change permissions?
I don't understand why RemoveManyAsync
not work when deploying on K8s?
Hi,
Removing distributed cache with above method call when deploying on K8s does not affect immediately. The cache is refreshed after 5 minutes (I guess). Is there anything I have to do? How to remove old cache immediately after changing permissions?
Hi,
Thanks for your suggestion. I inject IDistributedCache<PermissionGrantCacheItem>
and call it's RemoveManyAsync
method => it works perfectly now.
Hi,
It works now. The Id need to be uppercase: .RequirePermissions(menuItem.Id.ToString().ToUpper())
, but when I refresh the page, the granted menus are not displayed immediately. I have to manually clear redis cache. So, which is the right method I have to call to refresh the cache when changing permissions?
Hi,
I don't see any error.
[administration-service_76245987-4]: [13:30:52 DBG] Executed AbpApplicationConfigurationAppService.GetAsync().
[administration-service_76245987-4]: [13:30:52 INF] Executed action method Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController.GetAsync (Volo.Abp.AspNetCore.Mvc), returned result Microsoft.AspNetCore.Mvc.ObjectResult in 103.9099ms.
[administration-service_76245987-4]: [13:30:52 INF] Executing ObjectResult, writing value of type 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto'.
[administration-service_76245987-4]: [13:30:52 INF] Executed action Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController.GetAsync (Volo.Abp.AspNetCore.Mvc) in 106.7414ms
[administration-service_76245987-4]: [13:30:52 INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController.GetAsync (Volo.Abp.AspNetCore.Mvc)'
[administration-service_76245987-4]: [13:30:52 INF] Request finished HTTP/1.1 GET http://mzh.mhibs.administrationservice.httpapi.host:7001/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 - - - 200 - application/json;+charset=utf-8 110.7096ms
[administration-service_76245987-4]: [13:30:52 INF] Request starting HTTP/1.1 GET http://mzh.mhibs.administrationservice.httpapi.host:7001/api/abp/application-localization?CultureName=en&OnlyDynamics=True&api-version=1.0 - -
[administration-service_76245987-4]: [13:30:52 INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController.GetAsync (Volo.Abp.AspNetCore.Mvc)'
[administration-service_76245987-4]: [13:30:52 INF] Route matched with {area = "abp", action = "Get", controller = "AbpApplicationLocalization", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto] GetAsync(Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto) on controller Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController (Volo.Abp.AspNetCore.Mvc).
[administration-service_76245987-4]: [13:30:52 INF] Executing action method Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController.GetAsync (Volo.Abp.AspNetCore.Mvc) - Validation state: Valid
[administration-service_76245987-4]: [13:30:52 INF] Executed action method Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController.GetAsync (Volo.Abp.AspNetCore.Mvc), returned result Microsoft.AspNetCore.Mvc.ObjectResult in 132.7568ms.
[administration-service_76245987-4]: [13:30:52 INF] Executing ObjectResult, writing value of type 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto'.
[administration-service_76245987-4]: [13:30:52 INF] Executed action Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController.GetAsync (Volo.Abp.AspNetCore.Mvc) in 134.5931ms
[administration-service_76245987-4]: [13:30:52 INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController.GetAsync (Volo.Abp.AspNetCore.Mvc)'
[administration-service_76245987-4]: [13:30:52 INF] Request finished HTTP/1.1 GET http://mzh.mhibs.administrationservice.httpapi.host:7001/api/abp/application-localization?CultureName=en&OnlyDynamics=True&api-version=1.0 - - - 200 - application/json;+charset=utf-8 138.5244ms
[administration-service_76245987-4]: [13:30:52 INF] Request starting HTTP/1.1 GET http://mzh.mhibs.administrationservice.httpapi.host:7001/api/administration-service/menu-item/menu?api-version=1.0 - -
[administration-service_76245987-4]: [13:30:53 DBG] PermissionStore.GetCacheItemAsync: pn:U,pk:67382431-cb1b-e66f-3384-3a0a1b180a20,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] Found in the cache: pn:U,pk:67382431-cb1b-e66f-3384-3a0a1b180a20,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] PermissionStore.GetCacheItemAsync: pn:R,pk:admin,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] Found in the cache: pn:R,pk:admin,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] PermissionStore.GetCacheItemAsync: pn:C,pk:Web.DockerHttpCore,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] Found in the cache: pn:C,pk:Web.DockerHttpCore,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 INF] Executing endpoint 'MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application)'
[administration-service_76245987-4]: [13:30:53 INF] Route matched with {action = "GetAllMenu", controller = "MenuItem", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[System.Collections.Generic.List`1[MZH.MHIBS.AdministrationService.Menus.MenuItemDto]] GetAllMenuAsync() on controller MZH.MHIBS.AdministrationService.Menus.MenuItemAppService (MZH.MHIBS.AdministrationService.Application).
[administration-service_76245987-4]: [13:30:53 INF] Executing action method MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application) - Validation state: Valid
[administration-service_76245987-4]: [13:30:53 INF] Executed action method MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application), returned result Microsoft.AspNetCore.Mvc.ObjectResult in 4.5297ms.
[administration-service_76245987-4]: [13:30:53 DBG] Added 0 entity changes to the current audit log
[administration-service_76245987-4]: [13:30:53 INF] Executing ObjectResult, writing value of type 'System.Collections.Generic.List`1[[MZH.MHIBS.AdministrationService.Menus.MenuItemDto, MZH.MHIBS.AdministrationService.Application.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'.
[administration-service_76245987-4]: [13:30:53 INF] Executed action MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application) in 9.1316ms
[administration-service_76245987-4]: [13:30:53 INF] Executed endpoint 'MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application)'
[administration-service_76245987-4]: [13:30:53 DBG] Added 0 entity changes to the current audit log
[administration-service_76245987-4]: [13:30:53 INF] Request finished HTTP/1.1 GET http://mzh.mhibs.administrationservice.httpapi.host:7001/api/administration-service/menu-item/menu?api-version=1.0 - - - 200 - application/json;+charset=utf-8 20.4294ms
[administration-service_76245987-4]: [13:30:53 INF] Request starting HTTP/1.1 GET http://mzh.mhibs.administrationservice.httpapi.host:7001/api/administration-service/menu-item/menu?api-version=1.0 - -
[administration-service_76245987-4]: [13:30:53 DBG] PermissionStore.GetCacheItemAsync: pn:U,pk:67382431-cb1b-e66f-3384-3a0a1b180a20,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] Found in the cache: pn:U,pk:67382431-cb1b-e66f-3384-3a0a1b180a20,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] PermissionStore.GetCacheItemAsync: pn:R,pk:admin,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] Found in the cache: pn:R,pk:admin,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] PermissionStore.GetCacheItemAsync: pn:C,pk:Web.DockerHttpCore,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] Found in the cache: pn:C,pk:Web.DockerHttpCore,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 INF] Executing endpoint 'MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application)'
[administration-service_76245987-4]: [13:30:53 INF] Route matched with {action = "GetAllMenu", controller = "MenuItem", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[System.Collections.Generic.List`1[MZH.MHIBS.AdministrationService.Menus.MenuItemDto]] GetAllMenuAsync() on controller MZH.MHIBS.AdministrationService.Menus.MenuItemAppService (MZH.MHIBS.AdministrationService.Application).
[administration-service_76245987-4]: [13:30:53 INF] Executing action method MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application) - Validation state: Valid
[administration-service_76245987-4]: [13:30:53 INF] Executed action method MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application), returned result Microsoft.AspNetCore.Mvc.ObjectResult in 5.0168ms.
[administration-service_76245987-4]: [13:30:53 DBG] Added 0 entity changes to the current audit log
[administration-service_76245987-4]: [13:30:53 INF] Executing ObjectResult, writing value of type 'System.Collections.Generic.List`1[[MZH.MHIBS.AdministrationService.Menus.MenuItemDto, MZH.MHIBS.AdministrationService.Application.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'.
[administration-service_76245987-4]: [13:30:53 INF] Executed action MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application) in 8.5125ms
[administration-service_76245987-4]: [13:30:53 INF] Executed endpoint 'MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application)'
[administration-service_76245987-4]: [13:30:53 DBG] Added 0 entity changes to the current audit log
[administration-service_76245987-4]: [13:30:53 INF] Request finished HTTP/1.1 GET http://mzh.mhibs.administrationservice.httpapi.host:7001/api/administration-service/menu-item/menu?api-version=1.0 - - - 200 - application/json;+charset=utf-8 24.7428ms
[administration-service_76245987-4]: [13:30:53 INF] Request starting HTTP/1.1 GET http://mzh.mhibs.administrationservice.httpapi.host:7001/api/administration-service/menu-item/menu?api-version=1.0 - -
[administration-service_76245987-4]: [13:30:53 DBG] PermissionStore.GetCacheItemAsync: pn:U,pk:67382431-cb1b-e66f-3384-3a0a1b180a20,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] Found in the cache: pn:U,pk:67382431-cb1b-e66f-3384-3a0a1b180a20,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] PermissionStore.GetCacheItemAsync: pn:R,pk:admin,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] Found in the cache: pn:R,pk:admin,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] PermissionStore.GetCacheItemAsync: pn:C,pk:Web.DockerHttpCore,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 DBG] Found in the cache: pn:C,pk:Web.DockerHttpCore,n:AdministrationService.MenuItems
[administration-service_76245987-4]: [13:30:53 INF] Executing endpoint 'MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application)'
[administration-service_76245987-4]: [13:30:53 INF] Route matched with {action = "GetAllMenu", controller = "MenuItem", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[System.Collections.Generic.List`1[MZH.MHIBS.AdministrationService.Menus.MenuItemDto]] GetAllMenuAsync() on controller MZH.MHIBS.AdministrationService.Menus.MenuItemAppService (MZH.MHIBS.AdministrationService.Application).
[administration-service_76245987-4]: [13:30:53 INF] Executing action method MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application) - Validation state: Valid
[administration-service_76245987-4]: [13:30:53 INF] Executed action method MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application), returned result Microsoft.AspNetCore.Mvc.ObjectResult in 5.5035ms.
[administration-service_76245987-4]: [13:30:53 DBG] Added 0 entity changes to the current audit log
[administration-service_76245987-4]: [13:30:53 INF] Executing ObjectResult, writing value of type 'System.Collections.Generic.List`1[[MZH.MHIBS.AdministrationService.Menus.MenuItemDto, MZH.MHIBS.AdministrationService.Application.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'.
[administration-service_76245987-4]: [13:30:53 INF] Executed action MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application) in 9.3429ms
[administration-service_76245987-4]: [13:30:53 INF] Executed endpoint 'MZH.MHIBS.AdministrationService.Menus.MenuItemAppService.GetAllMenuAsync (MZH.MHIBS.AdministrationService.Application)'
[administration-service_76245987-4]: [13:30:53 DBG] Added 0 entity changes to the current audit log
[administration-service_76245987-4]: [13:30:53 INF] Request finished HTTP/1.1 GET http://mzh.mhibs.administrationservice.httpapi.host:7001/api/administration-service/menu-item/menu?api-version=1.0 - - - 200 - application/json;+charset=utf-8 19.2255ms
Hi,
How to reload granted permissions? I call await _dynamicPermissionDefinitionStore.GetPermissionsAsync();
as your suggestion but not work
private ApplicationMenuItem CreateApplicationMenuItem(MenuItemDto menuItem)
{
return new ApplicationMenuItem(
menuItem.DisplayName,
menuItem.DisplayName,
menuItem.Url,
menuItem.Icon,
menuItem.Order,
menuItem.Target,
menuItem.ElementId,
menuItem.CssClass
).RequirePermissions(menuItem.Id.ToString());
}
When I remove .RequirePermissions(menuItem.Id.ToString())
the dynamic menu items show correctly
Hi, I have to add reference to HttpClient proj of IdentityService and configure RemoteService in appsettings.json, right?
Hi,
What is the best way to get role list from IdentityService inAdministraionService?
Hi,
OK. Thanks. I will try it. But I need your guide when inserting data into permission related tables. Is there anything I have to pay attention?