从web服务创建一个Asp用户(身份2+?)
本文关键字:用户 Asp 身份 一个 web 服务 创建 | 更新日期: 2023-09-27 18:16:40
我希望通过WCF web服务为我的MVC web应用程序创建用户。在以前的身份版本中,我为成员和用户表创建了一条记录。
现在只有存储用户配置文件的aspnetUsers表。我试着在这个表中创建一个新的记录,但是没有成功。记录被创建,但我不能登录与该帐户。如何散列我的密码?我把盐放在哪里?表中似乎没有指定字段来定义您的盐。
这是我想使用的查询:
INSERT INTO AspNetUsers(Id, Email, EmailConfirmed, PassWordhash, SecurityStamp,PhoneNumber,PhoneNumberConfirmed, TwoFactorEnabled,LockoutEnabled,AccessFailedCount,UserName) " + "
VALUES(@Id,
@Email,
@EmailConfirmed,
@PassWordhash,
@SecurityStamp,
@PhoneNumber,
@PhoneNumberConfirmed,
@TwoFactorEnabled,
@LockoutEnabled,
@AccessFailedCount,
@UserName) command.Parameters.Add(NEW SqlParameter("@Email", emailAddress));
command.Parameters.Add(NEW SqlParameter("@EmailConfirmed", FALSE));
//TODO hash + securitystamp?
command.Parameters.Add(NEW SqlParameter("@PassWordhash", hashedPassword));
command.Parameters.Add(NEW SqlParameter("@SecurityStamp", FALSE));
command.Parameters.Add(NEW SqlParameter("@PhoneNumber", "093277604"));
command.Parameters.Add(NEW SqlParameter("@PhoneNumberConfirmed", FALSE));
command.Parameters.Add(NEW SqlParameter("@TwoFactorEnabled", FALSE));
command.Parameters.Add(NEW SqlParameter("@LockoutEnabled", TRUE));
command.Parameters.Add(NEW SqlParameter("@AccessFailedCount", "0"));
目前直接通过数据库添加这个,因为我不知道还有其他方法吗?以前有存储过程来做这个,但是现在没有了。
我正在使用加密库来散列我的密码,但这显然不起作用。
- 为什么要通过DB查询直接创建它们?
- 你能包括一些实际的值你正在使用这个查询吗?
- 这就是密码哈希在Identity ASP中的工作方式。. NET身份默认密码哈希器,它是如何工作的,是安全的吗?
编辑:
下面是stamp的生成方式:
private static string NewSecurityStamp()
{
return Guid.NewGuid().ToString();
}