首页 > 解决方案 > aspboilerplate 中的权限管理

问题描述

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

首先,我在这里MultitenancySides.Host找到的和之间有什么区别......MultitenancySides.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)] 

我在活动服务中找到了那些(第一个链接第二个链接),

[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; 

这是我想要并期望在我的 Multitenant Saas (Core + Angualr SPA)中实现权限的内容......将有不同的功能(我说模块),包括 Event ( CRUD)、Library( CRUD)、Exam( CRUD)、Result( CRUD)、出勤(CRUD)和我想拥有CRUD对租户超级管理员的完全访问()权限(默认情况下在创建租户时分配),然后超级管理员可以创建角色(分配模块和权限(CRUD)到特定模块)。

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

我已经完成了教程,但无法对其进行整理。

谢谢你。

标签: c#asp.netangularasp.net-coreaspnetboilerplate

解决方案


MultiTenancySides.Host首先,和有什么区别MultitenancySides.Tenant

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

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

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

[AbpAuthorize]→ 用户已登录。

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


推荐阅读