繁体   English   中英

如何使用 email 和 asp.net 核心 razor 中的电话号码字段登录?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM