我正在使用ASP.NET MVC 5和Identity 2开发一个开源项目,我想知道如何在我的应用程序中创建第一个(root)用户。
我在Google上搜索过,我找到的唯一解决方案是将整个过程集成到Seed()函数中:
// From http://stackoverflow.com/questions/27498921/creating-asp-net-identity-user-in-seed-method-of-db-initializer
protected override void Seed(EvContext context)
{
//Add other entities using context methods
ApplicationUserManager manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context));
var user = new ApplicationUser { Email = "admin@myemail.com" ,UserName = "admin@myemail.com"};
var result = await manager.CreateAsync(user, "Temp_123");//this line gives error. obviously await cannot be used in non- async method and I cannot make Seed async
}
但由于这是一个开源项目,我不希望密码显示在代码上,而是在部署时在某处实现。有人告诉我,我可以使用OWIN,但我找不到任何解决方案。你的解决方案是什么?谢谢!
答案 0 :(得分:1)
1-如果您的用户下载源代码并且他们将在Visual Studio中编译/部署它:在WebConfig中放置这些默认值或种子并在您的类中读取它。查看example here
2-如果您的用户通常部署已编译的版本,我会提出以下建议:
答案 1 :(得分:0)
在我看来,为第一个用户提供已知的登录名和密码并不是一个糟糕的解决方案。部署过程应该有更改初始密码的步骤。