ASP.NET身份验证:使用电子邮件而不是用户名

18

在新的ASP.NET身份验证系统中,我该如何使用电子邮件代替用户名?

我尝试更改RegisterViewModel类:

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

但是当我输入电子邮件地址时,我遇到了错误:

User name fsdfsd@fsdfsd.de is invalid, can only contain letters or digits.
1个回答

22

您有两个选项来解决这个问题,要么关闭该验证器,要么创建自己的UserValidator

您可以按照以下方式将其关闭:

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

4
我建议创建一个定制的UserManager(例如,AppUserManager:UserManager),在实例化时以这种方式设置自己的UserValidator。我这样做是为了不必记得设置UserManager类的UserValidator,只需记得使用我的定制AppUserManager类即可。 - Jeremy Cook

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接