ASP.NET MVC 通过电子邮件而不是用户名登录

Anh*_*ang 5 asp.net-mvc owin asp.net-identity-2

我尝试通过“个人用户帐户”使用 MVC 5 和 OWIN 创建新项目。问题是当我注册新帐户时,系统要求我输入电子邮件,然后该电子邮件将填充到数据库中的电子邮件和用户名。当我尝试登录时,系统要求我输入电子邮件,但它会将该电子邮件与用户名列进行比较。因此电子邮件和用户名的值是相同的。下面的登录代码正在运行登录(帐户控制器)

var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
Run Code Online (Sandbox Code Playgroud)

有没有什么方法可以将输入的电子邮件与电子邮件列而不是用户名进行比较?

Jul*_*oan 0

原因是因为你注册的时候。你得到用户名=电子邮件。

  public async Task<ActionResult> Register(RegisterViewModel model)
    {
        if (ModelState.IsValid)
        {
            var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
            var result = await UserManager.CreateAsync(user, model.Password);
Run Code Online (Sandbox Code Playgroud)