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

目前直接通过数据库添加这个,因为我不知道还有其他方法吗?以前有存储过程来做这个,但是现在没有了。

我正在使用加密库来散列我的密码,但这显然不起作用。

从web服务创建一个Asp用户(身份2+?)

  1. 为什么要通过DB查询直接创建它们?
  2. 你能包括一些实际的值你正在使用这个查询吗?
  3. 这就是密码哈希在Identity ASP中的工作方式。. NET身份默认密码哈希器,它是如何工作的,是安全的吗?

编辑:
下面是stamp的生成方式:

private static string NewSecurityStamp()
{
     return Guid.NewGuid().ToString();
}