无法使用web api身份登录

时间:2016-10-27 18:49:31

标签: asp.net asp.net-web-api oauth asp.net-identity

我正在尝试在本地项目中实施用于身份验证的Web API,并了解我使用asp.net教程Here的过程 我所遇到的错误反映了我与自己所遇到的问题,因此感觉这是一个很好的故障排除起点。我所做的唯一更改是将其指向我的本地SQL数据库。

我不喜欢它创建的表的命名约定,所以我添加了一个覆盖来指定我从在线资源获得的表名。当我添加此覆盖时,它会抛出状态代码500内部服务器错误:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<IdentityUser>().ToTable("User").Property(p => p.Id).HasColumnName("UserID");
        modelBuilder.Entity<IdentityRole>().ToTable("Roles").Property(p => p.Id).HasColumnName("RoleID");
        modelBuilder.Entity<IdentityUserRole>().ToTable("UserRole");
        modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogin");
        modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaim").Property(p => p.Id).HasColumnName("UserClaimID");
    }
}

如何保留功能并更改表名?

2 个答案:

答案 0 :(得分:0)

代码看起来很好,500错误不足以让您或我们继续使用。对于Web API中的几乎任何异常都返回500。

遵循本指南是值得的:https://azure.microsoft.com/en-us/documentation/articles/vs-azure-tools-resource-groups-deployment-projects-create-deploy/有助于确定Web API中此问题和未来问题的根本原因。

答案 1 :(得分:0)

所以问题是我运行了一次,它创建了默认的表模式,然后我再次运行它,并期望代码迁移来更新表。我希望它能够生成新表,这就是混乱。我删除了整个数据库,并保留了相同的覆盖方法,并且有效。