我有一个Registrations
表,新用户被放入其中。稍后的进程为该用户创建一个数据库,并插入一个ASP。注册表中数据中的用户记录(email &名字).
我想扩展这一点,以便在注册时,用户可以输入他们的密码,然后在新数据库中设置密码。
要正确地做到这一点,我需要创建一个SecurityStamp
值,然后使用该值加密密码以获得PasswordHash
,我相信。然后我将这些值存储在注册表中,然后我可以将它们复制到用户的新数据库中,当它设置好后,他们就可以使用他们注册的密码登录。
我该如何做到这一点—生成SecurityStamp
然后散列密码?
SecurityStamp
可以是任何随机的,不可重复的- Guid.NewGuid().ToString()
可以很好地完成这项工作。
对于密码哈希UserManager
有PasswordHasher
属性为您进行密码哈希:
var userManager = new UserManager(context);
var passwordHash = userManager.PasswordHasher.HashPassword("mySecurePassword");
使用此命名空间
使用Microsoft.AspNetCore.Identity;
使用
生成哈希var pass = new PasswordHasher<object>().HashPassword(null, "your password");
测试你的密码哈希
var passCheck = new PasswordHasher<object>().VerifyHashedPassword(null, hashedpassword, "your test password");
return ((int)passCheck) == 1 ? "correct password" : "invalid password";