我可以将Configuration.Seed方法用于MVC数据库的初始ApplicationUser吗?

时间:2014-09-05 12:24:42

标签: asp.net-mvc entity-framework ef-migrations

我知道我们可以在使用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();
    }

问题在于,当我尝试使用该用户登录时,我无法知道密码是什么。

enter image description here

数据库上没有密码字段。我注意到有一个PasswordHash字段,并怀疑这是一个加密的密码。如何创建密码哈希?

1 个答案:

答案 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);
}