gpt4 book ai didi

asp.net - 大量插入用户/密码到 ASP.Identity 用户和成员(member)表

转载 作者:行者123 更新时间:2023-12-04 18:42:32 24 4
gpt4 key购买 nike

我想在 ASP.Identity Users and Memberships 表中插入 1,000 多个用户名和密码。理想情况下,我想在插入密码时对其进行加密。这可以用 T-SQL 来完成,还是我必须使用 C# 中的一些代码来循环一个例程,该例程将加密密码并插入用户名和可能的其他信息?这方面的一个例子将不胜感激。

最佳答案

好的,所以我找到了一种在没有性能影响的情况下批量插入 AspNet 身份表的方法。

public void CreateBulkIdentityUsers(List<string> userNames)
{
using (ApplicationDbContext context = new ApplicationDbContext())
{
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));

var users = context.Users.Where(u => userNames.Contains(u.UserName)).ToList();

PasswordHasher passwordHasher = new PasswordHasher();

foreach (var userName in userNames)
{
var user = users.Where(u => u.UserName == userName).FirstOrDefault();

if (user == null)
{
user = new ApplicationUser()
{
UserName = userName,
EmailConfirmed = false,
PhoneNumberConfirmed = false,
TwoFactorEnabled = false,
LockoutEnabled = false,
PasswordHash = passwordHasher.HashPassword("Password@123"),
SecurityStamp = Guid.NewGuid().ToString().ToLower()
};

context.Users.Add(user);
}
}
context.SaveChanges();
}
}
  • 在循环之前获取所有用户。以便我们可以检查该用户是否已存在于数据库中。
  • 初始化 PasswordHasher 以散列密码。
  • 找到用户如果找到然后跳过它。如果未找到,则使用一些密码创建一个新用户。

  • 希望,这有助于某人。 :)

    关于asp.net - 大量插入用户/密码到 ASP.Identity 用户和成员(member)表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22522326/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com