Skip to content

账户模块

1047 words
5 min

INFO

当前模块聚合到BasicManagement模块,包含:

  • 账户模块
  • 权限模块
  • 设置模块
  • 功能模块
  • 租户模块
  • 调度模块
  • 审计日志模块

所以在使用以上功能,只需要集成BasicManagement模块(默认已集成)

概述

  • 账户模块(Account Module)是框架核心业务模块之一,基于 Microsoft Identity 库和 Identity 模块构建,专注于提供用户身份认证与账户管理相关的基础功能,旨在简化开发者在系统身份验证领域的开发工作,保障系统访问安全。

身份认证

  • 负责用户身份校验流程,包括验证用户名/密码的有效性、生成和验证访问令牌,确保只有经过认证的用户才能访问系统受限资源。兼容 OpenID Connect 协议实现,可对接外部认证服务。

用户账户管理

提供完整的用户账户生命周期管理,核心功能包括:

  • 账户创建:支持用户自主注册或管理员后台创建账户;
  • 信息维护:允许用户修改个人资料(如姓名、邮箱等),管理员可编辑所有用户信息;
  • 账户状态控制:支持激活/禁用账户,实现用户访问权限的临时管控;
  • 用户锁定:当用户在指定时间内多次输入错误密码时,自动锁定账户一段时间,提升系统安全性。

密码管理

提供全面的密码安全保障机制,包括:

  • 密码加密存储:采用安全的加密算法存储密码,避免明文存储风险;
  • 密码重置:支持用户通过邮箱接收重置链接自主找回密码;
  • 密码强度检查:强制用户设置符合安全规范的密码(如长度、字符类型组合等);
  • 密码定期更新:管理员可配置密码有效期,要求用户定期更换密码。

角色与权限

  • ABP 权限模块深度集成,支持管理员为用户分配角色,通过角色批量管理用户权限。例如,将用户分配为“管理员”角色,即可自动获取用户管理、权限配置等相关操作权限。

社交登录集成

  • 支持集成第三方平台(如 Google、Facebook 等)账户进行登录,减少用户注册流程复杂度,提升登录便利性

数据库配置

  • 配置数据库连接字符串,在 appsettings.json 中设置目标数据库连接信息(以 MySQL 为例)
json
"ConnectionStrings": {
    "Default": "Server=localhost;Database=YourDbName;Uid=root;Pwd=yourPassword;"
}
  • 不使用Default数据库连接字符串
json
"ConnectionStrings": {
    "AbpIdentity": "Server=localhost;Database=YourDbName;Uid=root;Pwd=yourPassword;"
}

自定义表前缀

  • 通过配置 AbpIdentityDbProperties.DbTablePrefix 自定义数据表前缀,例如:
csharp
public override void PreConfigureServices(ServiceConfigurationContext context)
{
    // 自定义表前缀为 "Sys_",生成表如 Sys_Users、Sys_Roles
    AbpIdentityDbProperties.DbTablePrefix = "Sys_";
}

数据表说明

表名核心作用关键字段说明
AbpUsers用户表Id(用户唯一标识)、UserName(用户名)、PasswordHash(加密密码)、Email(邮箱)、PhoneNumber(手机号)、IsActive(是否激活)、LockoutEnd(锁定结束时间)、CreationTime(创建时间)
AbpRoles角色表Id(角色唯一标识)、Name(角色名称)、DisplayName(显示名称)、Description(描述)、IsDefault(是否默认角色)、IsPublic(是否公开角色)
AbpUserRoles用户与角色的多对多关联表UserId(关联AbpUsers.Id)、RoleId(关联AbpRoles.Id)
AbpUserLogins第三方登录关联表,存储用户与外部认证平台的绑定信息UserId(关联AbpUsers.Id)、LoginProvider(认证平台标识,如Google/微信)、ProviderKey(外部平台用户ID)
AbpUserTokens用户令牌表,存储用户的认证令牌、刷新令牌等信息UserId(关联AbpUsers.Id)、LoginProvider(认证平台)、Name(令牌名称)、Value(令牌值)
AbpPermissions权限定义表Id(权限标识)、Name(权限名称,如AbpIdentity.Users.Create)、DisplayName(显示名称)、Description(描述)、IsEnabled(是否启用)
AbpPermissionGrants权限授予记录表Id、Name(权限名称)、ProviderName(授予主体类型,如Role/User)、ProviderKey(主体ID,如角色ID/用户ID)
AbpUserClaims用户声明表Id、UserId(关联AbpUsers.Id)、ClaimType(声明类型,如NickName/DepartmentId)、ClaimValue(声明值)
AbpRoleClaims角色声明表Id、RoleId(关联AbpRoles.Id)、ClaimType(声明类型)、ClaimValue(声明值)
AbpSecurityLogs安全日志表,记录账户相关安全操作,用于审计和追溯Id、ApplicationName(应用名称)、UserId(操作用户ID)、Action(操作类型,如Login/FailedLogin/ChangePassword)、ClientIpAddress(客户端IP)、CreationTime(操作时间)

如有转载或 CV 的请标注本站原文地址