Asp 核心通过身份添加新的用户注册方式
Asp Core adding a new way of user registration via Identity
我有一个问题,我在 Asp Net Core 1.1.0 上有 Web 应用程序,它具有已实现的经典身份模型和用于授权的 OpenIddict。
在使用电子邮件/密码注册用户时的经典实现中,我需要意识到还可以使用 CodeNumber(15 个字符的数字序列长度)作为登录名和 pin 码(4 个字符的数字组合)进行注册) 作为密码。
CodeNumber 和 PinCode 将与用户身份分开存储 table。
方便用户使用两种方式登录系统
请告诉我如何在 Asp .Net Core 中实现?
提前谢谢你。
简单来说,Identity 开箱即用的方式是通过用户名查询用户,然后通过比较密码自动登录。要以不同的方式处理事情,您只需要对该过程进行更多的手动控制。而不是使用像 UserManager.FindByNameAsync
这样的东西,你只需回退到你的上下文并做这样的事情:
var user = db.Users.Where(m => m.CodeNumber == model.CodeNumber && m.PinCode == model.PinCode);
if (user == null)
{
ModelState.AddModelError("", "Incorrect code number and/or pin code");
}
然后,如果用户存在,只需手动登录:
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
我有一个问题,我在 Asp Net Core 1.1.0 上有 Web 应用程序,它具有已实现的经典身份模型和用于授权的 OpenIddict。
在使用电子邮件/密码注册用户时的经典实现中,我需要意识到还可以使用 CodeNumber(15 个字符的数字序列长度)作为登录名和 pin 码(4 个字符的数字组合)进行注册) 作为密码。
CodeNumber 和 PinCode 将与用户身份分开存储 table。
方便用户使用两种方式登录系统
请告诉我如何在 Asp .Net Core 中实现? 提前谢谢你。
简单来说,Identity 开箱即用的方式是通过用户名查询用户,然后通过比较密码自动登录。要以不同的方式处理事情,您只需要对该过程进行更多的手动控制。而不是使用像 UserManager.FindByNameAsync
这样的东西,你只需回退到你的上下文并做这样的事情:
var user = db.Users.Where(m => m.CodeNumber == model.CodeNumber && m.PinCode == model.PinCode);
if (user == null)
{
ModelState.AddModelError("", "Incorrect code number and/or pin code");
}
然后,如果用户存在,只需手动登录:
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);