加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ASP.NET Identity 2分离Email和UserName并使用Email登录

发布时间:2020-12-16 00:25:20 所属栏目:百科 来源:网络整理
导读:默认情况下,ASP.NET Identity将UserName和Email字段作为用户输入的电子邮件.我已经更改了它,以便我的系统为用户提供单独的用户名和电子邮件. 我的问题是现在我无法登录系统,因为Identity对UserName和Email都进行了检查. 我想知道是否有办法让这两个字段保持
默认情况下,ASP.NET Identity将UserName和Email字段作为用户输入的电子邮件.我已经更改了它,以便我的系统为用户提供单独的用户名和电子邮件.

我的问题是现在我无法登录系统,因为Identity对UserName和Email都进行了检查.

我想知道是否有办法让这两个字段保持独立和独特,同时能够检查电子邮件字段以便登录系统?

我注意到公共虚拟任务< SignInStatus> PasswordSignInAsync(字符串userName,字符串密码,bool isPersistent,bool shouldLockout);检查userName,但将此更改为电子邮件什么都不做,我仍然无法登录.

我还看了其他这些问题:

ASP.Net UserName to Email

Allowing both email and username for authentication

对于可能的解决方案,发现没有什么能让我做我想做的事.

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

解决方法

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

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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读