From e56a8ad90ed4123c6e8887ffe42eadda23e75219 Mon Sep 17 00:00:00 2001 From: Afresh Date: Tue, 28 Dec 2021 23:41:47 +0800 Subject: [PATCH 1/2] Translate Identity.md into Chinese. --- docs/zh-Hans/Modules/Identity.md | 308 +++++++++++++++++- docs/zh-Hans/images/identity-module-menu.png | Bin 0 -> 14766 bytes .../images/identity-module-permissions.png | Bin 0 -> 54519 bytes docs/zh-Hans/images/identity-module-roles.png | Bin 0 -> 27673 bytes docs/zh-Hans/images/identity-module-users.png | Bin 0 -> 29575 bytes 5 files changed, 300 insertions(+), 8 deletions(-) create mode 100644 docs/zh-Hans/images/identity-module-menu.png create mode 100644 docs/zh-Hans/images/identity-module-permissions.png create mode 100644 docs/zh-Hans/images/identity-module-roles.png create mode 100644 docs/zh-Hans/images/identity-module-users.png diff --git a/docs/zh-Hans/Modules/Identity.md b/docs/zh-Hans/Modules/Identity.md index 420b696a7c..3d60fff138 100644 --- a/docs/zh-Hans/Modules/Identity.md +++ b/docs/zh-Hans/Modules/Identity.md @@ -1,24 +1,116 @@ # 身份管理模块 -身份模块基于Microsoft Identity库用于管理[组织单元](Organization-Units.md), 角色, 用户和他们的权限. +身份模块基于 [Microsoft Identity 库](https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/identity) 用于管理角色,用户和他们的权限. -> 参阅 [源码](https://github.com/abpframework/abp/tree/dev/modules/identity). 文档很快会被完善. +## 如何安装 -## Identity安全日志 +当你使用 ABP 框架 [创建一个新的解决方案](https://abp.io/get-started) 时,此模块将被预安装(作为 NuGet/NPM 包)。你可以继续用其作为包并轻松地获取更新,也可以将其源代码包含在解决方案中(请参阅 `get-source` [CLI](../CLI.md))以开发自定义模块。 -安全日志可以记录账户的一些重要的操作或者改动, 你可以在在一些功能中保存安全日志. +### 源代码 -你可以注入和使用 `IdentitySecurityLogManager` 或 `ISecurityLogManager` 来保存安全日志. 默认它会创建一个安全日志对象并填充常用的值. 如 `CreationTime`, `ClientIpAddress`, `BrowserInfo`, `current user/tenant`等等. 当然你可以自定义这些值. +可以 [在此处](https://github.com/abpframework/abp/tree/dev/modules/identity) 访问源代码。源代码使用 [MIT](https://choosealicense.com/licenses/mit/) 许可, 所以你可以免费使用和自定义它. + +## 用户界面 + +此模块提供了 [Blazor](../UI/Blazor/Overall.md), [Angular](../UI/Angular/Quick-Start.md) 和 [MVC / Razor Pages](../UI/AspNetCore/Overall.md) 的 UI 可选. + +### 菜单项 + +此模块在 *管理* 菜单下添加了一个 *身份管理* 菜单项: + +![身份模块菜单](../images/identity-module-menu.png) + +这个菜单项和相关页面已获得授权. 这意味着当前用户必须拥有相关权限才能使其可见. `admin` 角色 (和拥有此角色的用户, 如 `admin` 用户) 已经拥有这些权限. 如果你想要使其他角色/用户也启用权限, 请打开 *角色* 或 *用户* 页面的 *权限* 对话框, 并检查如下所示的权限: + +![身分模块权限](../images/identity-module-permissions.png) + +请参阅 [授权文档](../Authorization.md) 以了解权限系统. + +### 页面 + +本节介绍此模块提供的主要页面. + +#### 用户 + +此页用于查看用户列表. 您可以创建/编辑和删除用户, 将角色分配给用户. + +![身分模块用户](../images/identity-module-users.png) + +一个用户可以有零个或多个角色. 用户从其角色继承权限. 此外, 你可以给用户直接分配权限 (通过点击 *操作* 按钮, 然后选择 *权限*) . + +#### 角色 + +角色用于按分组给用户分配权限. + +![身份模块角色](../images/identity-module-roles.png) + +角色除了角色名称之外还有2个属性: + +* `Default`: 如果某个角色被标记为 "default", 那么当新用户 (使用 [账户模块](Account.md)) 注册到应用程序时, 其将被作为默认角色分配给新用户. +* `Public`: 用户的公共角色可以被应用程序中的其他用户看到. 这个功能在身份模块中没有用到, 但被提供作为你可能希望在你自己的应用程序中使用的功能. + +## 其他功能 + +本节包括此模块提供的没有 UI 页面的其他功能. + +### 组织单元 + +组织单元 (OU) 可被用于 **按层级对用户和实体进行分组**. + +#### 组织单元实体 + +组织单元由 **OrganizationUnit** 实体表示. 它的基本属性是: + +- **TenantId**: 组织单元的租户Id. 对于宿主可以是 null. +- **ParentId**: 父级组织单元的Id. 如果这是一个根级组织单元,它可以是 null. +- **Code**: 对于租户唯一的层级字符串编码. +- **DisplayName**: 组织单元的显示名称. + +#### 组织树 + +由于组织单元可以有父级, 因此租户的所有组织单元是一个 **树** 结构. 这个树有一些规则; + +- 可以有多个根级 (`ParentId` 是 `null` 的) . +- 一个组织单元的第一级子项数量有限制 (因为下面解释的固定的组织单元编码单位长度) . + +#### 组织单元编码 + +组织单元编码是通过 `OrganizationUnitManager` 服务自动生成和维护的. 它是一个字符串, 像这个: + +"**00001.00042.00005**" + +这个编码常被用于轻易地 (递归) 查询出数据库中组织单元的所有子项. 这个编码有一些规则 (当你使用 `OrganizationUnitManager` 时自动被应用的) : + +- 对 [租户](../Multi-Tenancy.md) 是 **唯一的**. +- 同一组织单元的全部子项都具有 **以父级组织单元编码开头的** 编码 +- 如示例中所示, 它是固定长度的且是基于树中组织单元的级别的. +- 尽管组织单元编码是唯一的, 但如果你移动了相关的组织单元, 它也可以被更改. + +请注意, 你必须根据Id引用一个组织单元, 而不是编码, 因为编码后续是可以被更改的. + +#### 组织单元管理 + +`OrganizationUnitManager` 类可以被 [注入](../Dependency-Injection.md) 并用来管理组织单元. 常见用例如下: + +- 创建, 更新和删除组织单元. +- 在组织单元树中移动一个组织单元. +- 获取关于组织单元树及其项的信息. + +## 身份安全日志 + +安全日志系统可以记录账户的一些重要的操作或者改动 (例如 *登录* 和 *更改密码*) . 如果需要, 你也可以保存安全日志. + +你可以注入和使用 `IdentitySecurityLogManager` 或 `ISecurityLogManager` 来写入安全日志. 默认它会创建一个日志对象并填充常用的值, 如 `CreationTime`, `ClientIpAddress`, `BrowserInfo`, `current user/tenant` 等等. 当然你可以覆盖这些值. ```cs await IdentitySecurityLogManager.SaveAsync(new IdentitySecurityLogContext() { - Identity = "IdentityServer"; - Action = "ChangePassword"; + Identity = "IdentityServer"; + Action = "ChangePassword"; }); ``` -通过配置 `AbpSecurityLogOptions` 来提供应用程序的名称或者禁用安全日志功能. 默认是**启用**状态. +通过配置 `AbpSecurityLogOptions` 来为日志提供应用程序的名称 (如果你有多个应用程序并且想要在日志中区分应用程序) 或者禁用安全日志功能. ```cs Configure(options => @@ -26,3 +118,203 @@ Configure(options => options.ApplicationName = "AbpSecurityTest"; }); ``` +## 选项 + +`IdentityOptions` is the standard [options class](../Options.md) provided by the Microsoft [Identity library](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity). So, you can set these options in the `ConfigureServices` method of your [module](../Module-Development-Basics.md) class. + +**Example: Set minimum required length of passwords** + +````csharp +Configure(options => +{ + options.Password.RequiredLength = 5; +}); +```` + +ABP takes these options one step further and allows you to change them on runtime by using the [setting system](../Settings.md). You can [inject](../Dependency-Injection.md) `ISettingManager` and use one of the `Set...` methods to change the option values for a user, a tenant or globally for all users. + +**Example: Change minimum required length of passwords for the current tenant** + +````csharp +public class MyService : ITransientDependency +{ + private readonly ISettingManager _settingManager; + + public MyService(ISettingManager settingManager) + { + _settingManager = settingManager; + } + + public async Task ChangeMinPasswordLength(int minLength) + { + await _settingManager.SetForCurrentTenantAsync( + IdentitySettingNames.Password.RequiredLength, + minLength.ToString() + ); + } +} +```` + +`IdentitySettingNames` class (in the `Volo.Abp.Identity.Settings` namespace) defines constants for the setting names. + +## Distributed Events + +This module defines the following ETOs (Event Transfer Objects) to allow you to subscribe to changes on the entities of the module; + +* `UserEto` is published on changes done on an `IdentityUser` entity. +* `IdentityRoleEto` is published on changes done on an `IdentityRole` entity. +* `IdentityClaimTypeEto` is published on changes done on an `IdentityClaimType` entity. +* `OrganizationUnitEto` is published on changes done on an `OrganizationUnit` entity. + +**Example: Get notified when a new user has been created** + +````csharp +public class MyHandler : + IDistributedEventHandler>, + ITransientDependency +{ + public async Task HandleEventAsync(EntityCreatedEto eventData) + { + UserEto user = eventData.Entity; + // TODO: ... + } +} +```` + +`UserEto` and `IdentityRoleEto` are configured to automatically publish the events. You should configure yourself for the others. See the [Distributed Event Bus document](../Distributed-Event-Bus.md) to learn details of the pre-defined events. + +> Subscribing to the distributed events is especially useful for distributed scenarios (like microservice architecture). If you are building a monolithic application, or listening events in the same process that runs the Identity Module, then subscribing to the [local events](../Local-Event-Bus.md) can be more efficient and easier. + +## Internals + +This section covers some internal details of the module that you don't need much, but may need to use in some cases. + +### Domain layer + +#### Aggregates + +##### User + +A user is generally a person logins to and uses the application. + +* `IdentityUser` (aggregate root): Represents a user in the system. + * `IdentityUserRole` (collection): Roles to the user. + * `IdentityUserClaim` (collection): Custom claims of the user. + * `IdentityUserLogin` (collection): External logins of the user. + * `IdentityUserToken` (collection): Tokens of the user (used by the Microsoft Identity services). + +##### Role + +A role is typically a group of permissions to assign to the users. + +* `IdentityRole` (aggregate root): Represents a role in the system. + * `IdentityRoleClaim` (collection): Custom claims of the role. + +##### Claim Type + +A claim type is a definition of a custom claim that can be assigned to other entities (like roles and users) in the system. + +* `IdentityClaimType` (aggregate root): Represents a claim type definition. It contains some properties (e.g. Required, Regex, Description, ValueType) to define the claim type and the validation rules. + +##### Identity Security Log + +A `IdentitySecurityLog` object represents an authentication related operation (like *login*) in the system. + +* `IdentitySecurityLog` (aggregate root): Represents a security log in the system. + +##### OrganizationUnit + +An Organization unit is a entity in a hierarchical structure. + +* ```OrganizationUnit``` (aggregate root): Represents an organization unit in the system. + * ```Roles``` (collection): Roles of the organization unit. + +#### Repositories + +Following custom repositories are defined for this module: + +* `IIdentityUserRepository` +* `IIdentityRoleRepository` +* `IIdentityClaimTypeRepository` +* ```IIdentitySecurityLogRepository``` +* ```IOrganizationUnitRepository``` + +#### Domain services + +##### User manager + +`IdentityUserManager` is used to manage users, their roles, claims, passwords, emails, etc. It is derived from Microsoft Identity's `UserManager` class where `T` is `IdentityUser`. + +##### Role manager + +`IdentityRoleManager` is used to manage roles and their claims. It is derived from Microsoft Identity's `RoleManager` class where `T` is `IdentityRole`. + +##### Claim type manager + +`IdenityClaimTypeManager` is used to perform some operations for the `IdentityClaimType` aggregate root. + +##### Organization unit manager + +```OrganizationUnitManager``` is used to perform some operations for the ```OrganizationUnit``` aggregate root. + +##### Security log manager + +```IdentitySecurityLogManager``` is used to save security logs. + +### Application Layer + +#### Application Services + +* `IdentityUserAppService` (implements `IIdentityUserAppService`): Implements the use cases of the user management UI. +* `IdentityRoleAppService` (implement `IIdentityRoleAppService`): Implements the use cases of the role management UI. +* `IdentityClaimTypeAppService` (implements `IIdentityClaimTypeAppService`): Implements the use cases of the claim type management UI. +* `IdentitySettingsAppService` (implements `IIdentitySettingsAppService`): Used to get and update settings for the Identity module. +* `IdentityUserLookupAppService` (implements `IIdentityUserLookupAppService`): Used to get information for a user by `id` or `userName`. It is aimed to be used internally by the ABP framework. +* `ProfileAppService` (implements `IProfileAppService`): Used to change a user's profile and the password. +* ```IdentitySecurityLogAppService``` (implements ```IIdentitySecurityLogAppService```): Implements the use cases of the security logs UI. +* ```OrganizationUnitAppService``` (implements ```OrganizationUnitAppService```): Implements the use cases of the organization unit management UI. + +### Database Providers + +This module provides [Entity Framework Core](../Entity-Framework-Core.md) and [MongoDB](../MongoDB.md) options for the database. + +#### Entity Framework Core + +[Volo.Abp.Identity.EntityFrameworkCore](https://www.nuget.org/packages/Volo.Abp.Identity.EntityFrameworkCore) NuGet package implements the EF Core integration. + +##### Database Tables + +* **AbpRoles** + * AbpRoleClaims +* **AbpUsers** + * AbpUserClaims + * AbpUserLogins + * AbpUserRoles + * AbpUserTokens +* **AbpClaimTypes** +* **AbpOrganizationUnits** + * AbpOrganizationUnitRoles + * AbpUserOrganizationUnits +* **AbpSecurityLogs** + +#### MongoDB + +[Volo.Abp.Identity.MongoDB](https://www.nuget.org/packages/Volo.Abp.Identity.MongoDB) NuGet package implements the MongoDB integration. + +##### Database Collections + +* **AbpRoles** +* **AbpUsers** +* **AbpClaimTypes** +* **AbpOrganizationUnits** +* **AbpSecurityLogs** + +#### Common Database Properties + +You can set the following properties of the `AbpIdentityDbProperties` class to change the database options: + +* `DbTablePrefix` (`Abp` by default) is the prefix for table/collection names. +* `DbSchema` (`null` by default) is the database schema. +* `ConnectionStringName` (`AbpIdentity` by default) is the [connection string](../Connection-Strings.md) name for this module. + +These are static properties. If you want to set, do it in the beginning of your application (typically, in `Program.cs`). diff --git a/docs/zh-Hans/images/identity-module-menu.png b/docs/zh-Hans/images/identity-module-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..ce2ee7e3e92925c20049915f46db306fc47a6bb8 GIT binary patch literal 14766 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 literal 0 HcmV?d00001 diff --git a/docs/zh-Hans/images/identity-module-roles.png b/docs/zh-Hans/images/identity-module-roles.png new file mode 100644 index 0000000000000000000000000000000000000000..53df1cdc6dab0e316df51001514e22615216bde8 GIT binary patch literal 27673 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 D?OYoY literal 0 HcmV?d00001 diff --git a/docs/zh-Hans/images/identity-module-users.png b/docs/zh-Hans/images/identity-module-users.png new file mode 100644 index 0000000000000000000000000000000000000000..33edb4cb782f6e4096a59b5d91610ba29ea78a16 GIT binary patch literal 29575 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 vN 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 z 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 w)Fa`SyutRq Date: Wed, 29 Dec 2021 13:25:24 +0800 Subject: [PATCH 2/2] Complete Identity.md translations. --- docs/zh-Hans/Modules/Identity.md | 162 +++++++++++++++---------------- 1 file changed, 81 insertions(+), 81 deletions(-) diff --git a/docs/zh-Hans/Modules/Identity.md b/docs/zh-Hans/Modules/Identity.md index 3d60fff138..73f05af7bb 100644 --- a/docs/zh-Hans/Modules/Identity.md +++ b/docs/zh-Hans/Modules/Identity.md @@ -1,6 +1,6 @@ # 身份管理模块 -身份模块基于 [Microsoft Identity 库](https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/identity) 用于管理角色,用户和他们的权限. +身份模块基于 [Microsoft Identity 库](https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/identity) 用于管理角色,用户及其权限. ## 如何安装 @@ -75,14 +75,14 @@ #### 组织单元编码 -组织单元编码是通过 `OrganizationUnitManager` 服务自动生成和维护的. 它是一个字符串, 像这个: +组织单元编码是通过 `OrganizationUnitManager` 服务自动生成和维护的. 它是一个字符串, 像这样: "**00001.00042.00005**" -这个编码常被用于轻易地 (递归) 查询出数据库中组织单元的所有子项. 这个编码有一些规则 (当你使用 `OrganizationUnitManager` 时自动被应用的) : +通常用这种编码可以轻易地 (递归) 查询出数据库中组织单元的所有子项. 这个编码有一些规则 (当你使用 `OrganizationUnitManager` 时自动被应用的) : - 对 [租户](../Multi-Tenancy.md) 是 **唯一的**. -- 同一组织单元的全部子项都具有 **以父级组织单元编码开头的** 编码 +- 同一组织单元的全部子项都具有 **以父级组织单元编码开头的** 编码. - 如示例中所示, 它是固定长度的且是基于树中组织单元的级别的. - 尽管组织单元编码是唯一的, 但如果你移动了相关的组织单元, 它也可以被更改. @@ -96,7 +96,7 @@ - 在组织单元树中移动一个组织单元. - 获取关于组织单元树及其项的信息. -## 身份安全日志 +### 身份安全日志 安全日志系统可以记录账户的一些重要的操作或者改动 (例如 *登录* 和 *更改密码*) . 如果需要, 你也可以保存安全日志. @@ -115,14 +115,14 @@ await IdentitySecurityLogManager.SaveAsync(new IdentitySecurityLogContext() ```cs Configure(options => { - options.ApplicationName = "AbpSecurityTest"; + options.ApplicationName = "AbpSecurityTest"; }); ``` ## 选项 -`IdentityOptions` is the standard [options class](../Options.md) provided by the Microsoft [Identity library](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity). So, you can set these options in the `ConfigureServices` method of your [module](../Module-Development-Basics.md) class. +`IdentityOptions` 是由 Microsoft [Identity 库](https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/identity) 提供的标准 [选项类](../Options.md) . 所以, 你可以在 [模块](../Module-Development-Basics.md) 类的 `ConfigureServices` 方法中设置这些选项. -**Example: Set minimum required length of passwords** +**例如: 设置所需的密码最小长度** ````csharp Configure(options => @@ -131,9 +131,9 @@ Configure(options => }); ```` -ABP takes these options one step further and allows you to change them on runtime by using the [setting system](../Settings.md). You can [inject](../Dependency-Injection.md) `ISettingManager` and use one of the `Set...` methods to change the option values for a user, a tenant or globally for all users. +ABP 允许你在运行时通过使用 [设置系统](../Settings.md) 更进一步地更改这些选项. 你可以 [注入](../Dependency-Injection.md) `ISettingManager` 并使用 `Set...` 方法中的一种来更改用户, 租户或全局所有用户的选项值. -**Example: Change minimum required length of passwords for the current tenant** +**例如: 更改当前租户所需的密码最小长度** ````csharp public class MyService : ITransientDependency @@ -155,18 +155,18 @@ public class MyService : ITransientDependency } ```` -`IdentitySettingNames` class (in the `Volo.Abp.Identity.Settings` namespace) defines constants for the setting names. +`IdentitySettingNames` 类 (在 `Volo.Abp.Identity.Settings` 命名空间中) 为设置名称定义了一些常量. -## Distributed Events +## 分布式事件 -This module defines the following ETOs (Event Transfer Objects) to allow you to subscribe to changes on the entities of the module; +此模块定义了如下 ETOs (事件传输对象) 以允许你去订阅模块中实体的改动. -* `UserEto` is published on changes done on an `IdentityUser` entity. -* `IdentityRoleEto` is published on changes done on an `IdentityRole` entity. -* `IdentityClaimTypeEto` is published on changes done on an `IdentityClaimType` entity. -* `OrganizationUnitEto` is published on changes done on an `OrganizationUnit` entity. +* `UserEto` 在 `IdentityUser` 实体更改完成时发布. +* `IdentityRoleEto` 在 `IdentityRole` 实体更改完成时发布. +* `IdentityClaimTypeEto` 在 `IdentityClaimType` 实体更改完成时发布. +* `OrganizationUnitEto` 在 `OrganizationUnit` 实体更改完成时发布. -**Example: Get notified when a new user has been created** +**例如: 当一个新用户被创建时接收通知** ````csharp public class MyHandler : @@ -181,57 +181,57 @@ public class MyHandler : } ```` -`UserEto` and `IdentityRoleEto` are configured to automatically publish the events. You should configure yourself for the others. See the [Distributed Event Bus document](../Distributed-Event-Bus.md) to learn details of the pre-defined events. +`UserEto` 和 `IdentityRoleEto` 默认自动发布事件. 你应该自己配置其他的 Eto. 请参阅 [分布式事件总线文档](../Distributed-Event-Bus.md) 了解预定义事件的详细信息. -> Subscribing to the distributed events is especially useful for distributed scenarios (like microservice architecture). If you are building a monolithic application, or listening events in the same process that runs the Identity Module, then subscribing to the [local events](../Local-Event-Bus.md) can be more efficient and easier. +> 订阅分布式事件对于分布式场景 (如微服务架构) 特别有用. 如果你正在构建单体式应用程序, 或者在运行了身份模块的同一进程内监听事件, 那么订阅 [本地事件](../Local-Event-Bus.md) 更高效, 更简单. -## Internals +## 内部构件 -This section covers some internal details of the module that you don't need much, but may need to use in some cases. +本节包括模块的一些内部详细信息, 您不是那么需要, 但在一些情况下可能需要使用. -### Domain layer +### 领域层 -#### Aggregates +#### 聚合 -##### User +##### 用户 -A user is generally a person logins to and uses the application. +用户通常是一个登录并使用应用程序的人. -* `IdentityUser` (aggregate root): Represents a user in the system. - * `IdentityUserRole` (collection): Roles to the user. - * `IdentityUserClaim` (collection): Custom claims of the user. - * `IdentityUserLogin` (collection): External logins of the user. - * `IdentityUserToken` (collection): Tokens of the user (used by the Microsoft Identity services). +* `IdentityUser` (聚合根): 表示系统中的一个用户. + * `IdentityUserRole` (集合): 分配给用户的角色. + * `IdentityUserClaim` (集合): 用户的自定义声明. + * `IdentityUserLogin` (集合): 用户的外部登录. + * `IdentityUserToken` (集合): 用户的令牌 (用于 Microsoft Identity 服务). -##### Role +##### 角色 -A role is typically a group of permissions to assign to the users. +角色通常是分配给用户的一组权限. -* `IdentityRole` (aggregate root): Represents a role in the system. - * `IdentityRoleClaim` (collection): Custom claims of the role. +* `IdentityRole` (聚合根): 表示系统中的角色. + * `IdentityRoleClaim` (集合): 角色的自定义声明. -##### Claim Type +##### 声明类型 -A claim type is a definition of a custom claim that can be assigned to other entities (like roles and users) in the system. +声明类型是可以被分配给系统中其他实体 (如角色和用户) 的自定义声明的定义. -* `IdentityClaimType` (aggregate root): Represents a claim type definition. It contains some properties (e.g. Required, Regex, Description, ValueType) to define the claim type and the validation rules. +* `IdentityClaimType` (聚合根): 表示声明类型的定义. 它包括一些用于定义声明类型和验证规则的属性 (例如, 必须的, 正则表达式, 描述, 值类型) . -##### Identity Security Log +##### 身份安全日志 -A `IdentitySecurityLog` object represents an authentication related operation (like *login*) in the system. +`IdentitySecurityLog` 对象表示系统中与授权相关的操作 (如 *登录*) . -* `IdentitySecurityLog` (aggregate root): Represents a security log in the system. +* `IdentitySecurityLog` (聚合根): 表示系统中的安全日志. -##### OrganizationUnit +##### 组织单元 -An Organization unit is a entity in a hierarchical structure. +组织单元是一个有层级结构的实体. -* ```OrganizationUnit``` (aggregate root): Represents an organization unit in the system. - * ```Roles``` (collection): Roles of the organization unit. +* ```OrganizationUnit``` (聚合根): 表示系统中的组织单元. + * ```Roles``` (集合): 组织单元的角色. -#### Repositories +#### 仓储 -Following custom repositories are defined for this module: +此模块定义了以下自定义仓储: * `IIdentityUserRepository` * `IIdentityRoleRepository` @@ -239,50 +239,50 @@ Following custom repositories are defined for this module: * ```IIdentitySecurityLogRepository``` * ```IOrganizationUnitRepository``` -#### Domain services +#### 领域服务 -##### User manager +##### 用户管理 -`IdentityUserManager` is used to manage users, their roles, claims, passwords, emails, etc. It is derived from Microsoft Identity's `UserManager` class where `T` is `IdentityUser`. +`IdentityUserManager` 常用于管理用户, 他们的权限, 声明, 密码, 电子邮件等等. 它派生自 Microsoft Identity 的 `UserManager` 类, 其中 `T` 是 `IdentityUser`. -##### Role manager +##### 角色管理 -`IdentityRoleManager` is used to manage roles and their claims. It is derived from Microsoft Identity's `RoleManager` class where `T` is `IdentityRole`. +`IdentityRoleManager` 常用于管理角色和他们的声明. 它派生自 Microsoft Identity 的 `RoleManager` 类, 其中 `T` 是 `IdentityRole`. -##### Claim type manager +##### 声明类型管理 -`IdenityClaimTypeManager` is used to perform some operations for the `IdentityClaimType` aggregate root. +`IdenityClaimTypeManager` 常用于对聚合根 `IdentityClaimType` 执行某些操作. -##### Organization unit manager +##### 组织单元管理 -```OrganizationUnitManager``` is used to perform some operations for the ```OrganizationUnit``` aggregate root. +```OrganizationUnitManager``` 常用于对聚合根 `OrganizationUnit` 执行某些操作. -##### Security log manager +##### 安全日志管理 -```IdentitySecurityLogManager``` is used to save security logs. +```IdentitySecurityLogManager``` 常用于保存安全日志. -### Application Layer +### 服务层 -#### Application Services +#### 应用服务 -* `IdentityUserAppService` (implements `IIdentityUserAppService`): Implements the use cases of the user management UI. -* `IdentityRoleAppService` (implement `IIdentityRoleAppService`): Implements the use cases of the role management UI. -* `IdentityClaimTypeAppService` (implements `IIdentityClaimTypeAppService`): Implements the use cases of the claim type management UI. -* `IdentitySettingsAppService` (implements `IIdentitySettingsAppService`): Used to get and update settings for the Identity module. -* `IdentityUserLookupAppService` (implements `IIdentityUserLookupAppService`): Used to get information for a user by `id` or `userName`. It is aimed to be used internally by the ABP framework. -* `ProfileAppService` (implements `IProfileAppService`): Used to change a user's profile and the password. -* ```IdentitySecurityLogAppService``` (implements ```IIdentitySecurityLogAppService```): Implements the use cases of the security logs UI. -* ```OrganizationUnitAppService``` (implements ```OrganizationUnitAppService```): Implements the use cases of the organization unit management UI. +* `IdentityUserAppService` (实现 `IIdentityUserAppService`): 实现了用户管理 UI 的用例. +* `IdentityRoleAppService` (实现 `IIdentityRoleAppService`): 实现了角色管理 UI 的用例. +* `IdentityClaimTypeAppService` (实现 `IIdentityClaimTypeAppService`): 实现了声明类型管理 UI 的用例. +* `IdentitySettingsAppService` (实现 `IIdentitySettingsAppService`): 用于获取和更新身份模块的设置. +* `IdentityUserLookupAppService` (实现 `IIdentityUserLookupAppService`): 用于根据 `id` 或 `userName` 获取用户信息. 它旨在由ABP内部使用. +* `ProfileAppService` (实现 `IProfileAppService`): 用于更改用户的简介和密码. +* ```IdentitySecurityLogAppService``` (实现 ```IIdentitySecurityLogAppService```): 实现了安全日志 UI 的用例. +* ```OrganizationUnitAppService``` (实现 ```OrganizationUnitAppService```): 实现了组织单元管理 UI 的用例. -### Database Providers +### 数据库提供程序 -This module provides [Entity Framework Core](../Entity-Framework-Core.md) and [MongoDB](../MongoDB.md) options for the database. +此模块为数据库提供 [Entity Framework Core](../Entity-Framework-Core.md) 和 [MongoDB](../MongoDB.md) 两种选择. -#### Entity Framework Core +#### EF Core -[Volo.Abp.Identity.EntityFrameworkCore](https://www.nuget.org/packages/Volo.Abp.Identity.EntityFrameworkCore) NuGet package implements the EF Core integration. +NuGet 包 [Volo.Abp.Identity.EntityFrameworkCore](https://www.nuget.org/packages/Volo.Abp.Identity.EntityFrameworkCore) 实现了 EF Core 的集成. -##### Database Tables +##### 数据库表 * **AbpRoles** * AbpRoleClaims @@ -299,9 +299,9 @@ This module provides [Entity Framework Core](../Entity-Framework-Core.md) and [M #### MongoDB -[Volo.Abp.Identity.MongoDB](https://www.nuget.org/packages/Volo.Abp.Identity.MongoDB) NuGet package implements the MongoDB integration. +NuGet 包 [Volo.Abp.Identity.MongoDB](https://www.nuget.org/packages/Volo.Abp.Identity.MongoDB) 实现了 MongoDB 的集成. -##### Database Collections +##### 数据库集合 * **AbpRoles** * **AbpUsers** @@ -309,12 +309,12 @@ This module provides [Entity Framework Core](../Entity-Framework-Core.md) and [M * **AbpOrganizationUnits** * **AbpSecurityLogs** -#### Common Database Properties +#### 常用数据库属性 -You can set the following properties of the `AbpIdentityDbProperties` class to change the database options: +你可以设置 `AbpIdentityDbProperties` 中的以下属性来更改数据库选项: -* `DbTablePrefix` (`Abp` by default) is the prefix for table/collection names. -* `DbSchema` (`null` by default) is the database schema. -* `ConnectionStringName` (`AbpIdentity` by default) is the [connection string](../Connection-Strings.md) name for this module. +* `DbTablePrefix` (`Abp` 作为默认值) 是表/集合名称的前缀. +* `DbSchema` (`null` 作为默认值) 是数据库架构. +* `ConnectionStringName` (`AbpIdentity` 作为默认值) 是此模块的 [连接字符串](../Connection-Strings.md) 名称. -These are static properties. If you want to set, do it in the beginning of your application (typically, in `Program.cs`). +它们是静态属性. 你需要在开始运行应用程序前设置它们 (通常在 `Program.cs` 中).