You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
abp/docs/zh-Hans/Modules/Tenant-Management.md

108 lines
4.1 KiB

# 租户管理模块
[多租户](../Multi-Tenancy.md) 是 ABP 框架的核心功能之一. 它提供了构建 SaaS (软件及服务) 解决方案的基础架构. ABP 的多租户系统通过提供 `ITenantStore` 接口来抽象租户存储的位置. 您需要做的就是实现该接口.
**租户管理模块是 `ITenantStore` 接口的实现. 它将租户存储在数据库中. 它还提供了 UI 来管理租户及其 [功能](../Features.md).**
> 请参阅 [多租户](../Multi-Tenancy.md) 文档,以了解 ABP 框架的多租户系统. 本文重点介绍租户管理模块.
### 关于商业版 SaaS 模块
[SaaS 模块](https://commercial.abp.io/modules/Volo.Saas) 是此模块的替代实现, 具有更多的功能和可能性. 它作为 [ABP 商业版](https://commercial.abp.io/) 订阅的一部分分发.
## 如何安装
当你使用 ABP 框架 [创建一个新的解决方案](https://abp.io/get-started) 时, 此模块将被预安装(作为 NuGet/NPM 包). 你可以继续用其作为包并轻松地获取更新, 也可以将其源代码包含在解决方案中 (请参阅 `get-source` [CLI](../CLI.md)) 以开发自定义模块.
### 源代码
可以 [在此处](https://github.com/abpframework/abp/tree/dev/modules/identity) 访问源代码。源代码使用 [MIT](https://choosealicense.com/licenses/mit/) 许可, 所以你可以免费使用和自定义它.
## 用户界面
此模块将 "管理 -> 租户管理 -> 租户" 菜单项添加到应用程序的主菜单, 这将打开如下页面:
![租户管理页面](../images/module-tenant-management-page.png)
在这个页面中, 你可以查看所有租户. 你可以按照如下所示创建一个新的租户:
![租户管理新增租户](../images/module-tenant-management-new-tenant.png)
在这个模态框中;
* **租户名称**: 租户唯一的名称. 如果为租户使用二级域名, 这将是二级域名名称.
* **管理员电子邮件地址**: 租户管理员的电子邮件地址.
* **管理员密码**: 租户管理员的密码.
当您点击租户附近的 *操作* 按钮时, 您将看见可以执行的操作:
![租户管理操作](../images/module-tenant-management-actions.png)
### 管理租户功能
功能操作会打开一个模态框, 来对相关租户进行启用/禁用/设置 [功能](../Features.md). 这有一个模态框的例子:
![功能模态框](../images/features-modal.png)
### 管理主机功能
如果您使用应用程序的功能也在主机端, *管理主机功能* 按钮则用于设置主机端的功能.
## 内部结构
如果要 [自定义](../Customizing-Application-Modules-Guide.md) 此模块而不更改 [其源代码](https://github.com/abpframework/abp/tree/dev/modules/tenant-management), 则可以将此节作为参考.
### 领域层
#### 聚合
* `Tenant`
#### 仓储
* `ITenantRepository`
#### 领域服务
* `TenantManager`
### 应用层
#### 应用服务
* `TenantAppService`
#### 权限
- `AbpTenantManagement.Tenants`: 租户管理.
- `AbpTenantManagement.Tenants.Create`: 创建一个新的租户.
- `AbpTenantManagement.Tenants.Update`: 编辑一个已存在的租户.
- `AbpTenantManagement.Tenants.Delete`: 删除一个已存在的租户.
- `AbpTenantManagement.Tenants.ManageFeatures`: 管理租户的功能.
### EF Core 集成
* `TenantManagementDbContext` (实现了 `ITenantManagementDbContext`)
**数据库表:**
* `AbpTenants`
* `AbpTenantConnectionStrings`
### MongoDB 集成
* `TenantManagementMongoDbContext` (实现了 `ITenantManagementMongoDbContext`)
**数据库集合:**
* `AbpTenants` (也包括连接字符串)
## 注意事项
ABP 框架允许租户有专用的数据库, 以允许 *每个租户用一个数据库*. 此模块具有使该实现成为可能 (查阅其源代码) 的基础架构, 但是它没有实现应用程序层和 UI 功能以使其开箱即用. 您可以自己实现这些功能, 也可以考虑使用已完全实现这些功能并提供了更多业务功能的 [ABP 商业版 Saas 模块](https://docs.abp.io/en/commercial/latest/modules/saas).
## 另请参见
* [多租户](../Multi-Tenancy.md)
* [ABP 商业版 SaaS 模块](https://docs.abp.io/en/commercial/latest/modules/saas)