我知道我们可以在使用Seed方法进行Entity Framework迁移时初始化数据库,如下所示。
protected override void Seed(CraigSheppardSoftware.Models.ApplicationDbContext context)
{
context.Users.AddOrUpdate(p => p.UserName,
new ApplicationUser { FullName = "System Admin", UserName="CssOp", UserRole = UserType.SystemAdmin,
LandlinePhone=new ComplexDataTypes.PhoneNumber(), MobilePhone= new ComplexDataTypes.PhoneNumber()
} );
context.SaveChanges();
}
问题在于,当我尝试使用该用户登录时,我无法知道密码是什么。
数据库上没有密码字段。我注意到有一个PasswordHash字段,并怀疑这是一个加密的密码。如何创建密码哈希?
答案 0 :(得分:3)
使用UserManager
创建/更新用户。
var manager = new UserManager<ApplicationUser>(
new UserStore<ApplicationUser>(context));
var user = manager.Find("CssOp", "ThePassword");
if (user == null)
{
user = new ApplicationUser { UserName = "CssOp", Email = "email@mail.com" };
manager.Create(user, "ThePassword");
}
else
{
user.Email = "newemail@mail.com";
manager.Update(user);
}