【问题标题】:How to override AbpAuthorizationResources localization in AbpAuthorizationModule如何在 AbpAuthorizationModule 中覆盖 AbpAuthorizationResources 本地化
【发布时间】:2021-05-01 19:50:14
【问题描述】:

我已经成功地覆盖了一些本地化资源,但由于某种原因无法为授权本地化执行此操作。

您可以从我的域共享模块中的以下代码中看到,如果成功添加了来自不同模块的本地化但授权它不起作用。

例如

这只是响应的一部分

 "code": "Volo.Authorization:010002",
 "message": "Authorization failed! Given policy has not granted: SimplyAir.TimeTracks",

在我的 sr.json 本地化文件中,我添加了这个本地化字符串并像其他模块一样翻译它。但是来自身份验证模块的本地化不起作用

{
    [DependsOn(
        typeof(AbpAuditLoggingDomainSharedModule),
        typeof(AbpBackgroundJobsDomainSharedModule),
        typeof(AbpFeatureManagementDomainSharedModule),
        typeof(AbpIdentityDomainSharedModule),
        typeof(AbpIdentityServerDomainSharedModule),
        typeof(AbpPermissionManagementDomainSharedModule),
        typeof(AbpSettingManagementDomainSharedModule),
        typeof(AbpTenantManagementDomainSharedModule),
        typeof(AbpAccountApplicationContractsModule),
        typeof(AbpAuthorizationModule), //i have added auth module
        typeof(AbpUiModule)
        )]
    public class SimplyAirDomainSharedModule : AbpModule
    {
        public override void PreConfigureServices(ServiceConfigurationContext context)
        {
            SimplyAirGlobalFeatureConfigurator.Configure();
            SimplyAirModuleExtensionConfigurator.Configure();
        }

        public override void ConfigureServices(ServiceConfigurationContext context)
        {
            Configure<AbpVirtualFileSystemOptions>(options =>
            {
                options.FileSets.AddEmbedded<SimplyAirDomainSharedModule>();
            });

            Configure<AbpLocalizationOptions>(options =>
            {
                options.Resources
                    .Add<SimplyAirResource>("sr")
                    .AddBaseTypes(typeof(AbpValidationResource))
                    .AddVirtualJson("/Localization/SimplyAir");

                options.Resources
                    .Get<IdentityResource>()
                    .AddVirtualJson("/Localization/SimplyAir");

                options.Resources
                    .Get<AbpAuthorizationResource>() //ive included auth resource
                    .AddVirtualJson("/Localization/SimplyAir");

                options.Resources
                    .Get<AccountResource>()
                    .AddVirtualJson("/Localization/SimplyAir");

                options.Resources
                    .Get<AbpUiResource>()
                    .AddVirtualJson("/Localization/SimplyAir");

                options.DefaultResourceType = typeof(SimplyAirResource);
            });

            Configure<AbpExceptionLocalizationOptions>(options =>
            {
                options.MapCodeNamespace("SimplyAir", typeof(SimplyAirResource));
            });
        }
    }
}

【问题讨论】:

  • 嗨@stefan,我确实成功地覆盖了授权本地化。见:ibb.co/Bw7TxGd
  • 链接失效了,可以重新提供链接

标签: abp


【解决方案1】:

首先,检查您的数据库表 [AbpPermissionGrants],检查是否已授予 SimplyAir.TimeTracks 权限。如果没有,我认为您可以再次更新新的数据库和种子授予数据,检查权限授予数据。

【讨论】:

  • 是的,提到的权限存在于该表中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多