更改ASP.NET Identity 2数据上下文后,我无法登录

时间:2014-06-29 08:34:05

标签: asp.net-mvc asp.net-mvc-5 asp.net-identity

这些是我所做的改变:

  1. 使用我自己的DbContext:

    public class DataContext:IdentityDbContext

  2. 我修改了OnModelCreating方法

    modelBuilder.Entity<IdentityUserLogin>().HasKey<string>(l => l.UserId); modelBuilder.Entity<IdentityRole>().HasKey<string>(r => r.Id); modelBuilder.Entity<IdentityUserRole>().HasKey(r => new { r.RoleId, r.UserId });

  3. 这是种子方法:

    protected override void Seed(DataContext context) { var UserManager = new UserManager<User>(new UserStore<User>(context)); var RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context)); IdentityResult roleResult; if (!RoleManager.RoleExists("Admin")) { roleResult = null; roleResult = RoleManager.Create(new IdentityRole("Admin")); if (roleResult.Succeeded) { User admin = new User { UserName = "Admin" }; UserManager.Create(admin, "Password1"); } } }

  4. 但是当我尝试登录时,我收到此错误:&#34;对象引用未设置为对象的实例。&#34;

    Line 60:    if (ModelState.IsValid)
    Line 61:    {
    Line 62:        var user = await UserManager.FindAsync(model.UserName, model.Password);
    
    在FindAsync我改变了model.Email到UserName ..我修改了viewmodel和视图。 运行&#34;更新 - 数据库&#34;我可以看到用户&#34; Admin&#34;在数据库中。

0 个答案:

没有答案