ASP.NET标识使用电子邮件而不是用户名

dan*_*iel 17 c# asp.net-mvc-5 asp.net-identity

如何在新的ASP.NET身份系统中使用电子邮件而不是用户名?

我试着改变RegisterViewModel班级:

[Display(Name = "Email address")]
[Required(ErrorMessage = "The email address is required")]
[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string UserName { get; set; }
Run Code Online (Sandbox Code Playgroud)

但是当我输入邮件地址时,我收到错误:

User name fsdfsd@fsdfsd.de is invalid, can only contain letters or digits.
Run Code Online (Sandbox Code Playgroud)

med*_*eda 21

您可以通过关闭该验证器或创建自己的UserValidator来解决此问题.

你可以这样关掉它:

UserManager.UserValidator = new UserValidator<TUser>(UserManager) 
                                    { 
                                       AllowOnlyAlphanumericUserNames = false 
                                    };
Run Code Online (Sandbox Code Playgroud)

  • 我建议创建一个自定义UserManager(例如AppUserManager:UserManager),在实例化时以这种方式设置自己的UserValidator.我这样做是为了让我不必记得在新建UserManager类时设置UserValidator,只需要记住使用我的自定义AppUserManager类. (3认同)