网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
using System.Security.Cryptography;
using System.Text;
using Dpz.Core.Infrastructure.Entity;

namespace Dpz.Core.Public.Entity;

[Backup]
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 = this.Id,
            Name = this.Name,
            Sign = Sign,
            Sex = Sex,
            Avatar = string.IsNullOrEmpty(Avatar) ? "/images/guest.png" : Avatar,
            Permissions = Permissions,
            Enable = this.Enable,
            Key = this.Key
        };
    }

    public string GenerateKey()
    {
        var sourceKey =
            $"{Id}{Password}by-dpangzi";
        var buffer = Encoding.UTF8.GetBytes(sourceKey);
        var key = new StringBuilder();
        using var sha256 = SHA256.Create();
        var array = sha256.ComputeHash(buffer);
        for (var i = 0; i < array.Length; i++)
        {
            key.Append($"{array[i]:X2}");
            if ((i % 4) == 3 && i != array.Length - 1) key.Append("-");
        }

        return key.ToString();
    }
}
loading