namespace OnlineMsgServer.Common { public class User(string ID) { /// /// ws连接生成的唯一uuid /// public string ID { get; set; } = ID; /// /// 用户名,在客户端随意指定 /// public string? Name { get; set; } /// /// 是否为服务器节点伪装的 peer 用户 /// public bool IsPeerNode { get; set; } /// /// 用户公钥 用于消息加密发送给用户 /// public string? PublicKey { get; set; } /// /// 是否通过鉴权 /// public bool IsAuthenticated { get; set; } /// /// 连接来源IP /// public string? IpAddress { get; set; } /// /// 服务端下发的一次性 challenge /// public string? PendingChallenge { get; set; } /// /// challenge 下发时间(UTC) /// public DateTime ChallengeIssuedAtUtc { get; set; } = DateTime.UtcNow; /// /// 登录成功时间(UTC) /// public DateTime? AuthenticatedAtUtc { get; set; } /// /// 防重放 nonce 缓存(nonce -> unix timestamp) /// public Dictionary ReplayNonceStore { get; } = []; /// /// 限流窗口内请求时间戳(unix ms) /// public Queue RequestTimesMs { get; } = new(); } }