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.
5.5 KiB
5.5 KiB
用户实体
**本文档中引用的文件** - [IdentityUserWto.cs](file://aspnet-core/modules/webhooks/LINGYUN.Abp.Webhooks.Identity/LINGYUN/Abp/Webhooks/Identity/IdentityUserWto.cs) - [IdentitySessionDto.cs](file://aspnet-core/modules/identity/LINGYUN.Abp.Identity.Application.Contracts/LINGYUN/Abp/Identity/Dto/IdentitySessionDto.cs) - [AbpGdprIdentityUserDataProvider.cs](file://aspnet-core/modules/gdpr/LINGYUN.Abp.Gdpr.Domain.Identity/LINGYUN/Abp/Gdpr/Identity/AbpGdprIdentityUserDataProvider.cs) - [20231012032107_Initial-Single-Project.Designer.cs](file://aspnet-core/migrations/LY.MicroService.Applications.Single.EntityFrameworkCore.MySql/Migrations/20231012032107_Initial-Single-Project.Designer.cs) - [20240729102008_Upgrade-Abp-Framework-To-8-2-0.Designer.cs](file://aspnet-core/migrations/LY.MicroService.Applications.Single.EntityFrameworkCore.MySql/Migrations/20240729102008_Upgrade-Abp-Framework-To-8-2-0.Designer.cs) - [SingleMigrationsDbContextModelSnapshot.cs](file://aspnet-core/migrations/LY.MicroService.Applications.Single.EntityFrameworkCore.PostgreSql/Migrations/SingleMigrationsDbContextModelSnapshot.cs) - [20250217124909_Add-Gdpr-Module.Designer.cs](file://aspnet-core/migrations/LY.MicroService.Applications.Single.EntityFrameworkCore.MySql/Migrations/20250217124909_Add-Gdpr-Module.Designer.cs)目录
简介
IdentityUser 实体是系统中用户管理的核心组成部分,负责存储用户的基本信息、认证数据、账户状态以及审计信息。该实体通过模块化设计支持多租户、软删除、数据保护和领域事件等高级功能。本文档详细说明 IdentityUser 实体的结构、行为及其在系统中的作用。
Section sources
- IdentityUserWto.cs
属性定义
IdentityUser 实体包含以下主要属性分类:
基础信息
- 用户名 (UserName):用户的唯一登录名,用于身份验证。
- 姓名 (Name):用户的真实姓名。
- 姓氏 (Surname):用户的姓氏。
- 邮箱 (Email):用户的电子邮件地址,用于通信和验证。
- 电话号码 (PhoneNumber):用户的联系电话。
认证相关字段
- 密码哈希 (PasswordHash):存储经过哈希处理的密码,确保密码安全。
- 邮箱确认状态 (EmailConfirmed):布尔值,表示邮箱是否已验证。
- 电话号码确认状态 (PhoneNumberConfirmed):布尔值,表示电话号码是否已验证。
- 两步验证启用状态 (TwoFactorEnabled):指示是否启用了双因素认证。
账户状态
- 账户启用状态 (Enabled):布尔值,表示账户是否处于激活状态。
- 账户锁定状态 (LockoutEnabled):布尔值,表示是否允许账户被锁定。
- 锁定截止时间 (LockoutEnd):账户被锁定的结束时间。
- 失败登录尝试次数 (AccessFailedCount):记录连续失败的登录尝试次数。
审计字段
- 创建时间 (CreationTime):记录用户账户的创建时间。
- 最后修改时间 (LastModificationTime):记录用户信息最后一次修改的时间。
- 创建者ID (CreatorId):创建该用户账户的用户ID。
- 最后修改者ID (LastModifierId):最后修改该用户信息的用户ID。
Section sources
- IdentityUserWto.cs
- AbpGdprIdentityUserDataProvider.cs
账户状态与审计字段
IdentityUser 实体通过多个字段来管理账户的状态和审计信息。账户状态字段如 Enabled 和 LockoutEnabled 允许系统管理员控制用户的访问权限。审计字段则提供了完整的操作历史记录,便于追踪和合规性检查。这些字段由框架自动维护,确保数据的一致性和完整性。
Section sources
- IdentityUserWto.cs
软删除机制
软删除通过 IsDeleted 字段实现,该字段在数据库中默认值为 false。当用户被删除时,系统不会从数据库中物理移除记录,而是将 IsDeleted 设置为 true,并记录删除时间和删除者ID。这种方式保留了数据的历史记录,同时避免了因误删导致的数据丢失。
flowchart TD
A[用户删除请求] --> B{验证权限}
B --> |通过| C[设置IsDeleted=true]
C --> D[记录删除时间]
D --> E[保存更改]
E --> F[返回成功]
B --> |拒绝| G[返回错误]
Diagram sources
- 20231012032107_Initial-Single-Project.Designer.cs
- [20240729102008_Upgrade-Abp-Framework-To-8-2-0.Designer.cs](file://aspnet-core/migrations/LY.MicroService.App