Configure Microsoft.AspNet.Identity to allow email address as username
I'm in the process of creating a new application and started out using EF6-rc1, Microsoft.AspNet.Identity.Core 1.0.0-rc1, Microsoft.AspNet.Identity.EntityFramework 1.0.0-rc1, Microsoft.AspNet.Identity.Owin 1.0.0-rc1, etc and with the RTM releases yesterday, I updated them via NuGet this evening to RTM.
Apart from a couple of code changes to the work I'd done so far, all seemed to be going well, until I tried to create a local user account for the app.
I had been working on e-mail addresses being the username format which with the release candidate worked great, but now when creating a user with an email address for a username, it throws up the following validation error:
User name [email protected] is invalid, can only contain letters or digits.
I've spent the last hour or so searching for a solution or documentation on configuration options for it, but to no avail.
Is there a way I can configure it to allow e-mail addresses for usernames?
You can allow this by plugging in your own UserValidator on the UserManager, or just by turning it off on the default implementation:
UserManager.UserValidator = new UserValidator<TUser>(UserManager) { AllowOnlyAlphanumericUserNames = false }
The C# version of this (in App_Code\IdentityModels.cs) is
public UserManager()
: base(new UserStore<ApplicationUser>(new ApplicationDbContext()))
{
UserValidator = new UserValidator<ApplicationUser>(this) { AllowOnlyAlphanumericUserNames = false };
}