C# 基于令牌的身份验证-DbContext错误

C# 基于令牌的身份验证-DbContext错误,c#,asp.net,asp.net-mvc,entity-framework,asp.net-identity,C#,Asp.net,Asp.net Mvc,Entity Framework,Asp.net Identity,我正在尝试将刷新令牌添加到现有的Web API项目中。初始令牌身份验证基于该示例 这完全符合预期 尝试使用后续教程继续添加刷新令牌时 一旦我进入部分,向现有数据库添加两个dbset AuthContextIdentityDbContext身份验证停止工作 (DefaultConnection是web.config中正确的连接字符串) 公共类AuthContext:IdentityDbContext { 公共AuthContext() :base(“默认连接”) { } 公共数据库集客户端{get

我正在尝试将刷新令牌添加到现有的Web API项目中。初始令牌身份验证基于该示例

这完全符合预期

尝试使用后续教程继续添加刷新令牌时

一旦我进入部分,向现有数据库添加两个
dbset
AuthContext
IdentityDbContext
身份验证停止工作 (
DefaultConnection
是web.config中正确的连接字符串)

公共类AuthContext:IdentityDbContext { 公共AuthContext() :base(“默认连接”) { } 公共数据库集客户端{get;set;} 公共数据库集刷新令牌{get;set;} } 通过代码返回
UserManager.FindAsyn
c方法为用户返回null,即使登录详细信息与以前完全相同

我已经检查了
UserManger
正在使用Microsoft.AspNet.Identity.Core.2.2.1,数据库中有相应的表

一旦我移除两个dbset,身份验证就会再次工作,并且 尝试教程中包含的示例项目,效果很好

有人能告诉我为什么会发生这种情况,以及我如何解决它吗

谢谢


Mark

除了添加两个新的实体外,您是否更新了数据库?是的,客户端和RefreshTokens表都在数据库中您是通过EF还是手动更新数据库的?听起来您的模型和数据库不同步,因此为什么从数据库上下文中删除实体可以解决此问题。这些表是通过EF迁移创建的,因此应该与实体匹配?作为参考,该项目还有一个ApplicationDbContext,它是为MVC auth项目创建的。不确定这是否会产生问题?除了添加两个新的实体外,您是否更新了数据库?是的,客户端和RefreshTokens表都在数据库中您是通过EF还是手动更新数据库的?听起来您的模型和数据库不同步,因此为什么从数据库上下文中删除实体可以解决此问题。这些表是通过EF迁移创建的,因此应该与实体匹配?作为参考,该项目还有一个ApplicationDbContext,它是为MVC auth项目创建的。不确定这是否会产生问题?
 public class AuthContext : IdentityDbContext<IdentityUser>
{
    public AuthContext()
        : base("DefaultConnection")
    {

    }

    public DbSet<Client> Clients { get; set; }
    public DbSet<RefreshToken> RefreshTokens { get; set; }
}