C# ASP.NET Identity 2电子邮件和用户名分离并使用电子邮件登录

C# ASP.NET Identity 2电子邮件和用户名分离并使用电子邮件登录,c#,asp.net,asp.net-mvc,asp.net-mvc-5,asp.net-identity-2,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 5,Asp.net Identity 2,默认情况下,ASP.NET Identity将用户名和电子邮件字段作为用户输入的电子邮件。我已经对它进行了更改,以便我的系统为用户接收单独的用户名和电子邮件 我的问题是,现在我无法登录到系统,因为身份会根据用户名和电子邮件进行检查 我想知道是否有一种方法可以保持这两个字段的独立性和唯一性,同时只需检查电子邮件字段即可登录系统 我注意到,公共虚拟任务密码signinasync(字符串用户名、字符串密码、bool ispersist、bool shouldllockout)检查用户名,但将其更改为电

默认情况下,ASP.NET Identity将用户名和电子邮件字段作为用户输入的电子邮件。我已经对它进行了更改,以便我的系统为用户接收单独的用户名和电子邮件

我的问题是,现在我无法登录到系统,因为身份会根据用户名和电子邮件进行检查

我想知道是否有一种方法可以保持这两个字段的独立性和唯一性,同时只需检查电子邮件字段即可登录系统

我注意到,
公共虚拟任务密码signinasync(字符串用户名、字符串密码、bool ispersist、bool shouldllockout)
检查用户名,但将其更改为电子邮件不会起任何作用,我仍然无法登录

我还研究了其他问题:

为了寻找可能的解决方案,我发现没有什么能真正让我做我想做的事情


还有什么我可以尝试的,以便有单独的用户名和电子邮件,同时仍然能够使用电子邮件字段登录吗?

因此,看起来您只能使用用户名进行身份验证,但没有理由从电子邮件地址找不到用户名:

var user = await UserManager.FindByEmailAsync(model.Email);
if (user == null)
{

    return //some error or throw
}
var result = await 
    SignInManager.PasswordSignInAsync(user.UserName, 
                                      model.Password, 
                                      model.RememberMe, 
                                      shouldLockout: false);

thnks,也正是我想要的+1