【问题标题】:Temporarily grant permissions in ABP framework在 ABP 框架中临时授予权限
【发布时间】:2021-04-25 08:33:40
【问题描述】:

我有一个运行ABP.io 框架的站点,我想让访问者将自己注册为新租户。问题是使用ITenantAppService 创建租户需要匿名用户没有的权限。

有什么方法可以在不登录的情况下临时执行需要提升权限的代码?

【问题讨论】:

    标签: abp


    【解决方案1】:

    暂时禁用权限不是一个好习惯。为此,您需要创建一个新的 AppService:IPublicTenantAppService,并且不应该有对此服务的权限。如果您有特定的业务逻辑,请创建一个新的域服务并在 PublicTenantAppService 中调用该服务

    【讨论】:

    • 会试一试,感谢您的意见!
    • @alper-ebicoglu 能否提供样品
    【解决方案2】:

    我找到了一个不完美但至少有效的解决方法。

    我添加了一个新的PermissionValueProvider,我在其中检查当前请求的堆栈跟踪以检查它是否来自注册页面:

    var callOriginatesFromTenantRegistrationPage = Environment.StackTrace.IndexOf("Web.Pages.Registration", StringComparison.Ordinal) > 0;
    

    如果是并且检查的权限是AbpTenantManagement.Tenants.Create,我将请求设置为已授予。

    不将此设置为答案,因为我希望有更好的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-08
      • 2016-08-24
      • 2015-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多