我正在Visual Studio 2015中的ASP.net MVC 5中创建一个网站。我正在尝试这样做,以便在注册和登录帐户时,它允许您使用用户名而不是电子邮件。< / p>
然而,我似乎无法弄清楚如何做到这一点。我已经将模型更改为使用用户名而不是电子邮件地址,我甚至从模型中删除了[EmailAddress],并允许电子邮件在其使用的MySql数据库中为空。但在注册帐户时,它仍然不允许我使用用户名而不是电子邮件。
它发出的错误表明电子邮件不能为空或空。
答案 0 :(得分:0)
你的问题是,在ApplicationUser中,Email是必填字段,因为它是由IdentityUser继承的。 所以在
中添加电子邮件字段<强> RegisterViewModel 强>
[Required]
[EmailAddress]
[Display(Name = "Email")]
public string Email { get; set; }
关于登记的后期行动 使用此代码创建用户
var user = new ApplicationUser { UserName = model.Username, Email = model.Email };
var result = await UserManager.CreateAsync(user, model.Password);
现在,当您使用用户名登录时,请使用此代码
var result = await SignInManager.PasswordSignInAsync(model.Username, model.Password, model.RememberMe, shouldLockout: false);
它允许您通过UserName登录。