So che questo è vecchio, ma non sono d'accordo con la risposta accettata, poiché la domanda è contrassegnata come asp.net-identity-2. A beneficio dei futuri lettori, ASP.NET 2.0 Identità ha una molto semplice soluzione a questo problema:
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...
}
}
In UserValidator<TUser>
, le Task<IdentityResult> ValidateAsync(T item)
controlli di implementazione questo flag e determina se dovrebbe funzionare la convalida e-mail:
if (this.RequireUniqueEmail)
{
await this.ValidateEmail(item, list);
}
Dal momento che si desidera salvare utenti senza un indirizzo e-mail, questo è come si dovrebbe fare.
ATTENZIONE: deve essere utilizzato solo quando gli indirizzi di posta elettronica non vengono raccolti. Se si desidera raccogliere e convalidare gli indirizzi e-mail, ma renderli opzionali durante la registrazione, è necessario utilizzare un numero personalizzato IIdentityValidator
.
Più uno per il tuo avatar. ... e la risposta corretta alla domanda, ovviamente! :) –