Aspnetboilerplate 在ABP中创建新租户时已使用角色名Admin

Aspnetboilerplate 在ABP中创建新租户时已使用角色名Admin,aspnetboilerplate,Aspnetboilerplate,我使用了Angular 2+Asp.net核心模板,该模板于2018/05/23下载 我所做的: 将数据库从SqlServer更改为MySql 更新了用于将初始化管理员名称更新为“HostAdmin”和“tenatadmin”的种子 在管理中创建租户 获取错误“角色名TenantAdmin已被接受。” 我已经调查了createtenant的代码,CreateStaticRoles在createtenant期间发生了错误 在此方法中,它将创建新角色,但此处存在重复检查。我不知道为什么?从哪里获

我使用了Angular 2+Asp.net核心模板,该模板于2018/05/23下载

我所做的:

  • 将数据库从SqlServer更改为MySql
  • 更新了用于将初始化管理员名称更新为“HostAdmin”和“tenatadmin”的种子
  • 在管理中创建租户
  • 获取错误“角色名TenantAdmin已被接受。”
  • 我已经调查了createtenant的代码,CreateStaticRoles在createtenant期间发生了错误

    在此方法中,它将创建新角色,但此处存在重复检查。我不知道为什么?从哪里获得RoleManagementConfig.StaticRoles的数据?除了UT,我在ABP源代码中找不到StaticRoles的任何值分配引用

    编辑: 添加了Abp的复制检查逻辑,看起来it总是无法通过检查,因为默认租户已经使用了静态角色名/显示名。

    如果在下载启动模板时选择“包括登录、注册、用户、角色和租户管理页面”,则项目中将包含一些迁移文件。这些文件是为SQL Server生成的。删除迁移文件夹下.EntityFramework项目中的所有迁移文件。迁移文件以时间戳开始。迁移文件名应该如下所示

    “201506210746108_AbpZero_Initial”删除所有迁移文件后,选择.Web项目作为启动项目,打开Visual Studio的包管理器控制台,并在包管理器控制台中选择.EntityFramework项目作为默认项目。然后运行以下命令为MySql添加迁移

    Add-Migration "AbpZero_Initial"
    
    现在,您可以使用以下命令创建数据库

    Update-Database
    

    您现在可以使用MySql运行您的项目。

    添加了静态角色。谢谢@aaron,还有一个问题,既然租户静态角色已经被占用,为什么Abp在创建新租户时再次创建静态角色。每个租户都有自己的角色,包括静态的。看起来它始终无法通过角色名称重复检查,因为默认租户已使用静态角色名称/显示名称。我错过什么了吗?这里有一个租户过滤器。