MVC4コードファーストアプリケーションでカスタムユーザーテーブルを使用したい。データベースコンテキストで事前ユーザーテーブルを定義しました。
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()でのみ実行する必要がありますか?
独自の保存方法を使用できる場合、データベースにパスワードを保存するにはどうすればよいですか?