Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net identity 2.2.1中使用密码哈希创建测试用户_C#_Asp.net_Asp.net Mvc_Asp.net Identity 2 - Fatal编程技术网

C# 在asp.net 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

我想为我的ASP.net MVC创建一些测试用户 应用identity的版本是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();

    }
}
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。我最初使用了它,但删除了它以匹配您在示例中使用的内容。由于这是登录所必需的,我将把它添加回答案中。在创建用户时,还需要设置许多其他非空值,安全戳是如何处理的?