我想在 MVC 4 代码优先应用程序中使用我的自定义用户表。我在我的数据库上下文中定义了高级用户表:
public class MyDatabase : DbContext
{
public DbSet<User> UserSet { get; set; }
public DbSet<News> NewsSet { get; set; }
...
}
模型如下:
public class User
{
[Key]
public int Id{ get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string Name { get; set; }
public string SurName { get; set; }
...
}
当应用程序启动时,它会调用:
WebSecurity.InitializeDatabaseConnection("MyDatabase", "Users", "Id", "UserName", autoCreateTables: true);
在控制器中,我使用Add(entity)来保存用户实体。保存后我想登录用户。但它不起作用:
[HttpPost]
public ActionResult Register(User user)
{
var result = MyService.SaveUser(user);
WebSecurity.Login(result.UserName, result.Password, true);
return RedirectToAction("Index", "Profile", new { id = result.Id });
}
保存用户后,数据保存在我的数据库中,但无法登录,我该怎么办?
编辑:
用我的业务方法保存用户实体是否正确?或者我必须只用 WebSecurity.CreateUserAndAccount() 来做?
如果我可以使用自己的保存方法,如何将密码保存在数据库中?