using Microsoft.AspNetCore.Identity; namespace zero.Identity; public abstract class ZeroIdentityUser : ZeroEntity { /// /// Optional username (can also be used as login when configured) /// [PersonalData] public string Username { get; set; } /// /// E-Mail address which is also used as the username /// [PersonalData] public string Email { get; set; } /// /// Whether the email address has been confirmed /// public bool IsEmailConfirmed { get; set; } /// /// The phone number for the user /// [PersonalData] public string PhoneNumber { get; set; } /// /// Whether the phone number has been confirmed /// public bool IsPhoneNumberConfirmed { get; set; } /// /// The password hash /// public string PasswordHash { get; set; } /// /// The security stamp /// public string SecurityStamp { get; set; } /// /// The user's claims, for use in claims-based authentication. /// public List Claims { get; set; } = new(); /// /// The roles (aliases) of the user /// public List RoleIds { get; set; } = new(); /// /// Ability to implement ISupportsSoftDelete /// public bool IsDeleted { get; set; } /// /// Number of times sign in failed. /// public int AccessFailedCount { get; set; } /// /// Whether the user is locked out. /// public bool LockoutEnabled { get; set; } /// /// When the user lock out is over. /// public DateTimeOffset? LockoutEnd { get; set; } /// /// Whether 2-factor authentication is enabled or not /// public bool TwoFactorEnabled { get; set; } /// /// When the user activated two-factor authentication /// public DateTimeOffset? TwoFactorEnabledDate { get; set; } /// /// The two-factor authenticator key /// public string TwoFactorAuthenticatorKey { get; set; } /// /// The list of two factor authentication recovery codes /// public IEnumerable TwoFactorRecoveryCodes { get; set; } = new List(); /// /// Store all external logins (Microsoft, Google, ...) /// public List ExternalLogins { get; set; } = new(); /// /// Authenticator tokens /// public List Tokens { get; set; } = new(); }