zoukankan      html  css  js  c++  java
  • Module-Zero之租户管理

    返回《Module Zero学习目录》


    开启多租户##

    ABP和Module-Zero可以运行多租户或单租户模式。多租户默认是禁用的。我们可以在module类中的PreInitialize方法中开启它,如下所示:

    [DependsOn(typeof(AbpZeroCoreModule))]
    public class MyCoreModule : AbpModule
    {
        public override void PreInitialize()
        {
            Configuration.MultiTenancy.IsEnabled = true;
        }
    
        ...
    }
    
    

    要注意的是:即使我们的应用不是多租户,我们也必须定义一个默认的租户。
    当我们基于ABP和Module-Zero创建了一个项目模板之后,我们就得到了Tenant实体和TenantManager领域服务。

    租户实体##

    Tenant实体代表该应用的一个租户。

    public class Tenant : AbpTenant<Tenant, User>
    {
    
    }
    
    

    Tenant实体派生自泛型的AbpTenant类。Tenant实体存储在数据库中的AbpTenants表中。你可以将自定义的属性添加到Tenant类中。

    AbpTenant类定义了一些基本的属性,最重要的有这么几个:

    • TenancyName:这是一个租户在应用中唯一的名字。正常情况下,不应该改变。可以使用它来分配一些租户的子领域,如‘mytenant.mydomain.com’。TenancyNameRegex常量定义了该命名规则。
    • Name:该租户的一个随意的,人类可读的长名字。
    • IsActive:如果该租户可以使用该应用,此值为true。如果此值为false,那么禁止该租户的用户登录系统。
      AbpTenant类继承自FullAuditedEntity。这意味着它有创建,修改以及删除审计属性。同时,它还是软删除的,即当我们删除一个租户时,它并没有从数据库中删除,而是仅仅标记为已删除的状态。

    最后,AbpTenant的Id定义为Int类型。

    租户管理者##

    租户管理者是执行租户领域逻辑的服务:

    public class TenantManager : AbpTenantManager<Tenant, Role, User>
    {
        public TenantManager(IRepository<Tenant> tenantRepository)
            : base(tenantRepository)
        {
    
        }
    }
    
    

    租户管理者也用于管理租户特征。你可以在这里添加你自己的方法。你也可以重写AbpTenantManager基类中的任何方法类满足自己的需求。

    默认租户##

    ABP和Module-Zero假设存在一个预定义的租户,它的租户名是“Default”,且Id是1。在一个单租户的应用中,它被用作单独的租户。在一个多租户的应用中,你可以删除它或者标记为无效的,即IsActive字段置为false。

  • 相关阅读:
    aspnet_Membership_SetPassword
    FlipView使用
    结构之法字符串及链表的探索编程之美第3章
    window和linux下svn的使用
    【算法导论第13章】红黑树
    【算法导论】第16章贪心算法
    【算法导论】第15章动态规划
    ubuntu11.04下myeclipse开发环境的搭建(jdk6+tomcat6+myeclipse8.0+mysql)
    【matlab】在vc6.0中调用matlab中的正态分布产生随机数
    gnome/gtk+开发环境搭建
  • 原文地址:https://www.cnblogs.com/farb/p/TenantManagement.html
Copyright © 2011-2022 走看看