Я знаю, что это старый, но я не согласен с принятым ответом, так как вопрос помечен как asp.net-identity-2. В интересах будущих читателей, ASP.NET Идентичность 2,0 имеет очень простое решение этой проблемы:
public class ApplicationUserManager : UserManager<ApplicationUser>
{
...snip...
public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
{
var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>()));
manager.UserValidator = new UserValidator<ApplicationUser>(manager)
{
// This disables the validation check on email addresses
RequireUniqueEmail = false
};
...snip...
}
}
В UserValidator<TUser>
, в Task<IdentityResult> ValidateAsync(T item)
проверке реализации этого флаг и определяет, будет ли он должен работать проверки электронной почты:
if (this.RequireUniqueEmail)
{
await this.ValidateEmail(item, list);
}
Поскольку вы хотите сохранить пользователей без адреса электронной почты, так вам следует это делать.
ВНИМАНИЕ: Это следует использовать только в том случае, если адреса электронной почты не собраны. Если вы хотите собирать и проверять адреса электронной почты, но сделать их необязательными во время регистрации, вы должны использовать пользовательский номер IIdentityValidator
.
Плюс один для вашего аватара. ... и правильный ответ на вопрос, конечно! :) –