UserLoginAttempt.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using System.ComponentModel.DataAnnotations;
  2. using System.ComponentModel.DataAnnotations.Schema;
  3. using Abp.Domain.Entities;
  4. using Abp.Domain.Entities.Auditing;
  5. using Abp.Timing;
  6. using VberZero.Authorization;
  7. using VberZero.BaseSystem.MultiTenancy;
  8. namespace VberZero.BaseSystem.Users;
  9. /// <summary>
  10. /// 存储用户的登录尝试
  11. /// </summary>
  12. [Table("Sys_UserLoginAttempts")]
  13. public class UserLoginAttempt : Entity<long>, IHasCreationTime, IMayHaveTenant
  14. {
  15. public const int MaxTenancyNameLength = Tenant.MaxTenancyNameLength;
  16. public const int MaxUserNameOrEmailAddressLength = User.MaxEmailAddressLength;
  17. public const int MaxClientIpAddressLength = 64;
  18. public const int MaxClientNameLength = 128;
  19. public const int MaxBrowserInfoLength = 512;
  20. /// <summary>
  21. /// 租户的 ID,如果 <see cref="TenancyName"/> 是有效的租户名称。
  22. /// </summary>
  23. public virtual int? TenantId { get; set; }
  24. [StringLength(MaxTenancyNameLength)]
  25. public virtual string TenancyName { get; set; }
  26. /// <summary>
  27. /// 用户 ID,如果 <see cref="UserNameOrEmailOrPhone"/> 是有效的用户名或电子邮件或手机号
  28. /// </summary>
  29. public virtual long? UserId { get; set; }
  30. [StringLength(MaxUserNameOrEmailAddressLength)]
  31. public virtual string UserNameOrEmailOrPhone { get; set; }
  32. /// <summary>
  33. /// 客户端的 IP 地址
  34. /// </summary>
  35. [StringLength(MaxClientIpAddressLength)]
  36. public virtual string ClientIpAddress { get; set; }
  37. /// <summary>
  38. /// 客户端的名称(一般为计算机名称)
  39. /// </summary>
  40. [StringLength(MaxClientNameLength)]
  41. public virtual string ClientName { get; set; }
  42. /// <summary>
  43. /// 如果在 Web 请求中调用此方法,则浏览器信息。
  44. /// </summary>
  45. [StringLength(MaxBrowserInfoLength)]
  46. public virtual string BrowserInfo { get; set; }
  47. /// <summary>
  48. /// 登录尝试结果
  49. /// </summary>
  50. public virtual VzLoginResultType Result { get; set; }
  51. public virtual DateTime CreationTime { get; set; }
  52. public UserLoginAttempt()
  53. {
  54. CreationTime = Clock.Now;
  55. }
  56. }