网站首页 网站源码
using Dpz.Core.Infrastructure.Entity;
namespace Dpz.Core.Public.Entity;
public class User : IBaseEntity
{
/// <summary>
/// 账号
/// </summary>
public string Id { get; set; }
/// <summary>
/// 昵称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 密码
/// </summary>
public string Password { get; set; }
/// <summary>
/// 是否启用
/// </summary>
public bool? Enable { get; set; }
/// <summary>
/// /签名
/// </summary>
public string Sign { get; set; }
/// <summary>
/// 头像
/// </summary>
public string Avatar { get; set; }
/// <summary>
/// 性别
/// </summary>
public Sex Sex { get; set; }
/// <summary>
/// key
/// </summary>
public string Key { get; set; }
/// <summary>
/// 权限
/// </summary>
public Permissions? Permissions { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 最后修改时间
/// </summary>
[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime? LastUpdateTime { get; set; }
public UserInfo GetUserInfo()
{
return new UserInfo
{
Id = Id,
Name = Name,
Sign = Sign,
Sex = Sex,
Avatar = string.IsNullOrEmpty(Avatar) ? "/images/guest.png" : Avatar,
Permissions = Permissions,
Enable = Enable,
Key = Key,
};
}
}
这段代码定义了一个 User 类,表示用户实体,包含了用户的基本信息和一些功能方法。以下是对代码的详细解释:
类定义:
User 类实现了 IBaseEntity 接口,表明它是一个基础实体。属性:
Id: 用户的账号(唯一标识符)。Name: 用户的昵称。Password: 用户的密码(通常需要加密存储)。Enable: 一个可选的布尔值,表示用户是否启用。Sign: 用户的签名。Avatar: 用户的头像 URL。Sex: 用户的性别,类型为 Sex(假设是一个枚举)。Key: 用户的密钥(可能用于身份验证或其他目的)。Permissions: 用户的权限,类型为 Permissions(假设是一个枚举或类)。CreateTime: 用户创建时间,使用 BSON 日期时间选项,表示为本地时间。LastUpdateTime: 用户最后修改时间,同样使用 BSON 日期时间选项。GetUserInfo:
UserInfo 对象,包含用户的基本信息。它会将 Avatar 属性的值设置为默认值("/images/guest.png"),如果 Avatar 为空。GenerateKey:
Id 和 Password 的 SHA-256 哈希值,并将其格式化为字符串。Id 和 Password 组合成一个字符串,并附加一个固定的字符串 "by-dpangzi"。-),以便于阅读。这个 User 类是一个用户管理的基础模型,包含了用户的基本信息和一些功能方法,如获取用户信息和生成密钥。它可以用于用户注册、登录、权限管理等功能。需要注意的是,密码的存储和处理应遵循安全最佳实践,例如使用哈希和盐值来保护用户密码。
