C# 在asp.net identity 2.2.1中使用密码哈希创建测试用户
我想为我的ASP.net MVC创建一些测试用户 应用identity的版本是2.2.1 我的代码可以很好地生成用户,但我想分配这样的密码 将允许这些测试帐户登录。所以我觉得我需要打电话 以正常方式创建用户时使用的相同哈希函数 我的代码是C# 在asp.net identity 2.2.1中使用密码哈希创建测试用户,c#,asp.net,asp.net-mvc,asp.net-identity-2,C#,Asp.net,Asp.net Mvc,Asp.net Identity 2,我想为我的ASP.net MVC创建一些测试用户 应用identity的版本是2.2.1 我的代码可以很好地生成用户,但我想分配这样的密码 将允许这些测试帐户登录。所以我觉得我需要打电话 以正常方式创建用户时使用的相同哈希函数 我的代码是 ApplicationDbContext db = new ApplicationDbContext(); ... for (var i=0; i<100; i++) { var name = "User" + i; var user
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();
}
}
ApplicationDbContext db=new ApplicationDbContext();
...
for(var i=0;i u.UserName==name);
if(user==null)
{
用户=新应用程序用户(){
用户名=名称,
电子邮件=姓名+“@”+姓名+“+姓名,
PasswordHash=???名称哈希?????
};
db.Users.Add(用户);
db.SaveChanges();
}
}
是的,我正在尝试为User1输入User1密码,为User2输入User2密码,以此类推
问候,,
John用户管理器将创建帐户。假设您使用的是默认的Identity framework模板,则应该有一个从
UserManager
派生的ApplicationUserManager
,所有必要的配置都应该已经在该类中
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);
}
}
}
public异步任务CreateTestUsers(){
var db=new ApplicationDbContext();
var userStore=新的userStore(db);
var userManager=新的ApplicationUserManager(userStore);
对于(变量i=1;i u.UserName==UserName);
if(user==null){
用户=新应用程序用户(){
用户名=用户名,
电子邮件=用户名+“@”+用户名+“+用户名,
emailconfirm=true,
LockoutEnabled=false
};
var密码=用户名;
var result=await userManager.CreateAsync(用户,密码);
}
}
}
然后,应该像正常方式一样创建测试用户,密码都经过哈希处理,可以进行测试。您需要使用UserManager创建帐户。检查您的AccountController并查看如何注册新帐户。应该让你知道你需要做什么谢谢你。工作完美。我在应用程序用户创建中添加了EmailConfirm=true和LocloutEnabled=False。我最初使用了它,但删除了它以匹配您在示例中使用的内容。由于这是登录所必需的,我将把它添加回答案中。在创建用户时,还需要设置许多其他非空值,安全戳是如何处理的?