我有一个使用ASP.NET Identity(v2.1)和Entity Framework v6.1的Web Api解决方案。在Configuration.cs文件的Seed()方法中,我有代码创建我的第一个Identity用户。此代码使用Identity框架来散列密码,创建安全标记等。这些都是我无法通过SQL执行的操作,因此添加到Up()
方法似乎不是一种选择。
protected override void Seed(ApplicationDbContext context)
{
// Create the admin user
var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
var user = new ApplicationUser()
{
UserName = "adminuser",
Email = "adminuser@mycompany.com",
EmailConfirmed = true,
FirstName = "John",
LastName = "Does",
JoinDate = DateTime.Now.AddYears(-1)
};
manager.Create(user, "SuperSecurePassword321!");
if (roleManager.Roles.Count() == 0)
{
roleManager.Create(new IdentityRole { Name = "Admin" });
roleManager.Create(new IdentityRole { Name = "Employee" });
roleManager.Create(new IdentityRole { Name = "Customer" });
}
var adminUser = manager.FindByName("adminuser");
manager.AddToRoles(adminUser.Id, new string[] { "Admin" });
}
我需要使用FTP来发布它(不能控制它)。有关如何在部署并且数据库是架构后运行此代码的任何建议吗?
我考虑的选项:
anonymous
访问,因为它将创建第一个用户和
系统中使用的角色。然后我需要以某种方式禁用
或稍后删除此端点。答案 0 :(得分:1)
INTEGER
。这种自动行为有什么问题?
如果您想手动调用它,请在Seed()
:
protected void Application_Start()