I would like to create new users with no emails. Inside my UserManager's constructor, I have the following code:
UserValidator = new UserValidator<User, long>(this)
{
RequireUniqueEmail = false,
};
However, I am still getting a validation error with an empty email address.
3 Answer(s)
-
0
EmailAddress is required for Abp.Zero. I suggest you to use it, since UserManager checks it on login. You can change required attribute by fluent mapping configuration in onmodelcreating, this may break login as I said. If you will not show it at all, put a <a href="mailto:[email protected]">[email protected]</a> for uniqueness.
-
0
Thank you for your help. In case anyone need it.
class User
[Required(AllowEmptyStrings=true)] public override string EmailAddress { get; set; }
UserManager
public override async Task<IdentityResult> CheckDuplicateUsernameOrEmailAddressAsync(long? expectedUserId, string userName, string emailAddress) { var user = (await FindByNameAsync(userName)); if (user != null && user.Id != expectedUserId) { return AbpIdentityResult.Failed(string.Format("Name {0} is already taken.", userName)); } // if email address was provided, check that it does not exist if (!string.IsNullOrEmpty(emailAddress)) { user = (await FindByEmailAsync(emailAddress)); if (user != null && user.Id != expectedUserId) { return AbpIdentityResult.Failed(string.Format("Email Address {0} is already taken.", emailAddress)); } } return IdentityResult.Success; }
You mentioned that "this may break login". I was going over the AbpUserManager.cs class, but I was not able to find a problem since the LoginAsyncInternal function use the username or email to login. Any idea where this will break? Thanks again
-
0
Since all emails will be empty (same), and login method checks also emails, it may be problem I thought. If not, never mind it.