[英]How to login with email and phonenumber fields in asp.net core razor?
在 asp.net 核心剃须刀页面中,SignInManager 具有 PasswordSignInAsync 方法,仅使用用户名登录,但我想使用 PhoneNumber 或 Email 等登录。这是我的登录代码:
var result = await _signInManager.PasswordSignInAsync(Input.Username, Input.Password, Input.RememberMe, lockoutOnFailure: false);
这是 PasswordSignInAsync 方法,我无法更改它,因为它被锁定在 asp.net 核心中:
public virtual Task<SignInResult> PasswordSignInAsync(string userName, string password, bool isPersistent, bool lockoutOnFailure)
{
throw null;
}
您必须使用第二个重载:
public virtual async Task<SignInResult> PasswordSignInAsync(TUser user, string password, bool isPersistent, bool lockoutOnFailure)
像这样将它与UserManager结合起来:
// find user by Email
var user = await _userManager.FindByEmailAsync(Input.Email);
// or find user by PhoneNumber
//var user = _userManager.Users.FirstOrDefault(u => u.PhoneNumber == Input.PhoneNumber);
if (user != null)
{
var result = _signInManager.PasswordSignInAsync(user, Input.Password, Input.RememberMe, lockoutOnFailure: false);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.