通过另一个控制器将用户添加到 aspnetuser 表中



我正在使用C#,ASP.NET MVC和.NET 4.5。我有一个只有我才能访问的测试控制器,基本上我希望能够一次创建 500 个测试用户并将其插入我的aspnetusers表中,这是我的测试环境。

在我的控制器中,我有这个:

RegisterViewModel model = new RegisterViewModel();
var s = Guid.NewGuid().ToString();
model.AccountType = accountType;
model.Email = s + "@email.com";
model.Password = s;
model.ConfirmPassword = s;
var result = new AccountController().Register(model);

这将关闭标准寄存器控制器:

public async Task<ActionResult> Register(RegisterViewModel model)

但是,它不会注册用户?它在创建异步部分出错:

var user = new ApplicationUser { UserName = model.Email, Email = model.Email, AccountType = model.AccountType };
var result = await UserManager.CreateAsync(user, model.Password);

我已经看到其他人在开始时提到"播种"这个,但我不想这样做,一旦用户进入系统,我有大量数据需要自动化/添加,所以需要遍历每个用户输入然后插入加载更多数据。我不想手动为每个帐户创建一个帐户,然后还必须在所有其他表中添加所有其他详细信息。

当然,有一种简单的方法可以做到这一点,有人知道?..

让你的非同步函数像那样......

public class TestController : Controller
{
ApplicationDbContext db = new ApplicationDbContext();
// GET: Test
public ActionResult Index()
{
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
string s = "User!1Nom"; // must contain special char if you use asp.net identity default validation 
for (int i = 1; i < 501; i++)
{
s = s + i;
var user = new ApplicationUser { UserName = s, Email = s+"@gmail.com" };
var result = userManager.Create(user, s);
}
return View();
}
}

相关内容

  • 没有找到相关文章

最新更新