我有一个UserViewModel和一个注册表单(电子邮件,密码),所以我想在后端检查电子邮件是否唯一,请您帮我解决这个问题的解决方案功能
public string Username { get; set; }
public string Password { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string State { get; set; }
public string Country { get; set; }
public DateTime DateOfBirth { get; set; }
public int Role { get; set; }
public string Email { get; set; }
RuleFor(model => model.Password).NotEmpty().WithMessage(string.Format(Resource.Validation_Required, Resource.Password));
RuleFor(model => model.Password).Must(MustHaveCharacterNumberAndSpecialCharacter).WithMessage(string.Format(Resource.Validation_Password, Resource.Password));
RuleFor(model => model.Email).NotEmpty().WithMessage(string.Format(Resource.Validation_Required, Resource.Email));
RuleFor(model => model.Email).EmailAddress().WithMessage(string.Format(Resource.Validation_Email, Resource.Email));
async Task<bool> MustBeUnique(string email, Guid id, CancellationToken cancellationToken = default(CancellationToken))
{
var user = await userService.GetAsync(x =>
x.Email.Equals(email, StringComparison.InvariantCultureIgnoreCase) &&
x.Id != id,
cancellationToken
);
return user == null;
}
答案 0 :(得分:0)
I AspNet Core提供了一种内置方式来指定在启动类中添加身份提供者时,电子邮件应该是唯一的,如下所示
-r
通过向用户发送此电子邮件,可以检查用户在您的应用程序中注册时它们是否唯一