删除 table 后身份抛出 "Invalid object name 'dbo.AspNetUserClaims'"

Identity throws "Invalid object name 'dbo.AspNetUserClaims'" after removing that table

我已经从我的数据库中删除了 "AspNetUserClaims" table,因为我没有保存任何索赔信息。

创建用户后,我试图通过用户名获取用户信息,但 returns 出现错误:

"Invalid object name 'dbo.AspNetUserClaims'.".

IdentityResult result = await manager.CreateAsync(user, model.Password);            
if (result.Succeeded)
{
    var userInfo = manager.FindByName(user.UserName);
    foreach (var myRole in myRoles)
    {
        manager.AddToRole(userInfo.Id, myRole.Name);
    }
    await AddToPreviousPasswordsAsync(user, user.PasswordHash);
}

在身份 2 的 UserManager class 中,Entity Framework-backed UserStore will ensure the claims are loaded for the requested user

这会访问 AspNetUserClaims table,当您的数据库不包含 table.

时,它将引发异常

只是不要删除库所需的 table,或者在没有声明部分的情况下重建库。而你不想做后者,因为那样你就不会再从官方渠道收到任何更新,而必须手动修补它。这不是处理与安全相关的库的方法,或者通常与此相关的任何库。