注册时检查电子邮件是否唯一

时间:2019-08-29 04:52:21

标签: asp.net-core asp.net-web-api

我有一个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;
        }

1 个答案:

答案 0 :(得分:0)

I AspNet Core提供了一种内置方式来指定在启动类中添加身份提供者时,电子邮件应该是唯一的,如下所示

-r

通过向用户发送此电子邮件,可以检查用户在您的应用程序中注册时它们是否唯一