【问题标题】:Permission management in aspboilerplateaspboilerplate 中的权限管理
【发布时间】:2023-03-18 23:32:01
【问题描述】:

我目前正在使用 aspboilerplate 开发多租户 saas webapp,并希望实现 权限管理,但我有点困惑。

首先,我发现MultitenancySides.HostMultitenancySides.Tenant 有什么区别@....

 public override void SetPermissions(IPermissionDefinitionContext context) 
    { 
       context.CreatePermission(PermissionNames.Pages_Users, L("Users")); 
        context.CreatePermission(PermissionNames.Pages_Roles, L("Roles")); 
        context.CreatePermission(PermissionNames.Pages_Tenants, L("Tenants"), multiTenancySides: MultiTenancySides.Host); 
        context.CreatePermission(PermissionNames.Pages_Events, L("Events"), multiTenancySides: MultiTenancySides.Tenant); 
    } 

其次,[AbpAuthorize]

有何不同
[AbpAuthorize(PermissionNames.Pages_Tenants)] 

我在活动服务中找到了那些(first linksecond link),

[AbpAuthorize] 
    public class EventAppService : EventCloudAppServiceBase, IEventAppService 
     { 
        private readonly IEventManager _eventManager; 
         private readonly IRepository<Event, Guid> _eventRepository;

在租户服务中

 [AbpAuthorize(PermissionNames.Pages_Tenants)] 
    public class TenantAppService : AsyncCrudAppService<Tenant, TenantDto, int, PagedResultRequestDto, CreateTenantDto, TenantDto>, ITenantAppService 
     { 
        private readonly TenantManager _tenantManager; 

这是我想要并期望在我的多租户 Saas (Core + Angualr SPA) 中实现权限的内容... 会有不同的功能(我说模块),包括事件(CRUD),图书馆(CRUD),考试(CRUD),结果(CRUD),出勤(CRUD),我想拥有对租户超级管理员的完全访问权限 (CRUD)(默认情况下在创建租户时分配),然后超级管理员可以创建角色(分配给特定模块的模块和权限 (CRUD))。

为简单起见,如果系统具有出勤模块/功能,则默认情况下租户的 Superadmin 将拥有完整的 CRUD 访问权限,而如果创建了 Staff 角色并限制为 CR 但不允许 @987654343 @。

我已经浏览了this 教程但无法整理出来。

谢谢。

【问题讨论】:

    标签: c# asp.net angular asp.net-core aspnetboilerplate


    【解决方案1】:

    首先,MultiTenancySides.HostMultitenancySides.Tenant有什么区别?

    MultiTenancySides.Host → 只能分配给主机用户 (user.TenantId == null)。

    MultiTenancySides.Tenant → 只能分配给租户用户 (user.TenantId != null)。

    其次,[AbpAuthorize][AbpAuthorize(PermissionNames.Pages_Tenants)] 有何不同?

    [AbpAuthorize] → 用户已登录。

    [AbpAuthorize(PermissionNames.Pages_Tenants)] → 用户已登录并拥有该权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      • 1970-01-01
      相关资源
      最近更新 更多