2013-11-03 61 views
16

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

我试图改变RegisterViewModel类:

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

但是当我输入一个电子邮件ADRESS我收到错误:

User name [email protected] is invalid, can only contain letters or digits. 

回答

21

您可以通过任一关闭有2个选项来解决这个问题该验证程序,或创建您自己的UserValidator

你可以关闭它是这样的:

UserManager.UserValidator = new UserValidator<TUser>(UserManager) 
            { 
             AllowOnlyAlphanumericUserNames = false 
            }; 
+3

我建议创建一个自定义的UserManager(例如AppUserManager:的UserManager)实例化时,设置本身的UserValidator这种方式。我这样做是为了在创建UserManager类时不必记得设置UserValidator,而只需要记住使用我的自定义AppUserManager类。 –

相关问题