Ho una serie di classi che ho sovrascritto per l'utilizzo in ASP.NET Identity 2.0 in modo che utilizzino il campo dell'indirizzo e-mail anziché il campo dell'email.Rimuovere il costrutto univoco e rendere il nome utente nullable nell'identità ASP.NET
Quando si tenta di creare un utente che dice The UserName field is required.
ho provato sovrascrivendo il campo Nome utente nella mia classe che eredita da ApplicationUser
IdentityUser
con [Index(IsUnique = false)]
tuttavia questo solo si traduce in un vincolo univoco e un indice non univoco in fase di creazione.
Come è possibile eseguire l'override della classe IdentityUser
per rendere il nome utente nullable e non univoco in quanto non si desidera utilizzarlo.
Nota: Sono pienamente consapevole del fatto che è possibile memorizzare l'e-mail nel campo nome utente utilizzando la proprietà AllowOnlyAlphanumericUserNames
nella classe UserValidator
. Non mi piace davvero questo approccio e vorrei solo rimuovere questo vincolo in modo da poter memorizzare il record senza un nome utente. Modificherò tutte le funzioni di cui ho bisogno che usano il nome utente per controllare l'indirizzo email.
In base all'attuale implementazione di Identity Framework, non è possibile utilizzare i metodi esistenti già pronti per le esigenze. Ti suggerirei di usare la sezione Username come Email e impostare AllowOnlyAlphanumericUserNames = true. – DSR