我想为我的ASP.net MVC创建一些测试用户 应用。身份的版本是2.2.1
我的代码可以很好地生成用户,但我想分配密码 允许这些测试帐户登录。所以我相信我需要打电话 用户以正常方式创建时使用的哈希函数相同。
我的代码是
ApplicationDbContext db = new ApplicationDbContext();
...
for (var i=0; i<100; i++)
{
var name = "User" + i;
var user = db.Users.FirstOrDefault(u => u.UserName == name);
if (user == null)
{
user = new ApplicationUser() {
UserName = name,
Email = name + "@" + name + "." + name,
PasswordHash = ?????hash of name ?????
};
db.Users.Add(user);
db.SaveChanges();
}
}
是的,我正在尝试为User1设置User1,为User2设置User2,依此类推。
此致 约翰
答案 0 :(得分:3)
UserManager
将创建帐户。假设您使用的是默认的Identity框架模板应该有一个ApplicationUserManager
派生自UserManager<ApplicationUser>
所有必要的配置应该已经在该类中。
public async Task CreateTestUsers() {
var db = new ApplicationDbContext();
var userStore = new UserStore<ApplicationUser>(db);
var userManager = new ApplicationUserManager(userStore);
for (var i = 1; i <= 100; i++) {
var username = "User" + i;
var user = db.Users.FirstOrDefault(u => u.UserName == username);
if (user == null) {
user = new ApplicationUser() {
UserName = username,
Email = username + "@" + username + "." + username,
EmailConfirmed = true,
LockoutEnabled = false
};
var password = username;
var result = await userManager.CreateAsync(user, password);
}
}
}
然后应该以正常方式创建测试用户,密码全部经过哈希处理并准备好进行测试。