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。
Module-Zero之租户管理的更多相关文章
- ABP Zero 多租户管理
ABPZero - 多租户管理 启用多租户 ASP.NET Boilerplate和module-zero可以运行多租户或单租户模式.多租户默认为禁用.我们可以在我们的模块PreInitialize方 ...
- 番外篇--Moddule Zero多租户管理
番外篇--Moddule Zero多租户管理 2.1.1 关于多租户 强烈建议阅读这个文件前阅读多租户文档. 2.1.2 启用多租户 ASP.NET Boilerplate和module-zero可以 ...
- 初识ABP vNext(7):vue身份认证管理&租户管理
Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章. 目录 前言 开始 按钮级权限 身份认证管理 R/U权限 权限刷新 租户管理 租户切换 效果 最后 前言 上一篇介绍了vue+ABP国际化 ...
- 吐槽一下Abp的用户和租户管理模块
1. 背景 ASP.NET Core 基于声明的访问控制到底是什么鬼? 聊到基于声明的身份认证将 身份和签发机构分离,应用程序信任签发机构,故认可签发的身份信息. -- --- --- --- Cla ...
- Module Zero之语言管理
返回<Module Zero学习目录> 概览介绍 如何开启 管理语言 管理本地化文本 概览介绍 ABP定义了一个健壮的UI本地化系统,它可用于服务端和客户端.它允许在不同的资源中(Reso ...
- Module Zero之角色管理
返回<Module Zero学习目录> 角色实体 角色管理者 多租户 角色实体 角色实体代表了该应用的一个角色.它应该派生自AbpRole类,如下所示: public class Role ...
- Module Zero之用户管理
返回<Module Zero学习目录> 用户实体 用户管理者 用户认证 用户实体 用户实体代表应用的一个用户,它派生自AbpUser类,如下所示: public class User : ...
- Module Zero之权限管理
返回<Module Zero学习目录> 概览介绍 角色权限 用户权限 概览介绍 Module-Zero实现了ABP授权系统的IPermissionChecker接口.这篇文章中,我们将会看 ...
- Oracle12c多租户管理用户、角色、权限
Oracle 数据库 12 c 多租户选项允许单个容器数据库 (CDB) 来承载多个单独的可插拔数据库 (PDB).那么我们如何在容器数据库 (CDB) 和可插拔数据库 (PDB)管理用户权限.背景: ...
随机推荐
- 1.Linux中安装LNMP过程
第一步安装mysql过程 安装包mysql-5.0.22.tar.gz,解压tar -zxvf mysql-5.0.22.tar.gz cd mysql-5.0.22 进行源码安装./configu ...
- Hadoop 学习资料集锦
Hadoop 资料 虾皮系列教程. Sqoop 资料 官方安装文档. 浪迹天涯博客. 瀚海星空博客. ……
- Spring AOP详解
一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnbl ...
- 实验二 c语言文法
<程序>-><声明>|<程序><函数> <函数>-><修饰符><标识符><形式参数>< ...
- [Leetcode] Contains Duplicate III
Given an array of integers, find out whether there are two distinct indices i and j in the array suc ...
- How to make your assembly more secure from referencing by unauthorized bits
Now the security has a trend to become more and more important in our daily work, hence I did some r ...
- JavaScript-String基础知识
1.字符串可以0个或多个字符串放在一起: " ' ' ".'""' . "\"\"" 2.写法 ...
- SQL Server 里的递归查询
http://www.360doc.com/content/13/0607/11/8463843_291221684.shtml
- python反射问题
python中的__import__是以字符串的形式反射导入模块并以字符串的形式执行函数
- javascript的变量声明提升
这篇随笔是对网上文章的整理吸收 1. javascript的作用域是函数,不是块 2. 在函数内部,javascript解释器会把var变量提升到当前域的最前面,但是函数体不会提升. 看下面例子: v ...