在ABP框架中临时授予权限

  • 本文关键字:权限 ABP 框架 abp
  • 更新时间 :
  • 英文 :


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

有没有办法临时执行需要提升权限而不登录的代码?

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

中调用该服务。

我找到了一个不完美但至少可以工作的解决方案。

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

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

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

不把这个作为答案,因为我希望有更好的解决方案。

最新更新