You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用双因素认证后登录触发Identity的ArgumentException错误求助

启用双因素认证后登录触发Identity的ArgumentException错误求助

大家好,我遇到了一个Identity双因素认证相关的bug,想请各位帮忙看看:

我写了一个AccountController,里面封装了登录、注册、双因素认证管理等所有账号相关操作,还在用户资料模块加了开关,允许用户手动启用/关闭两步登录功能。

本来所有流程测试都正常,但当用户启用双因素认证后,再次尝试登录时直接触发了异常,错误信息如下:

ArgumentException: Entity type 'IdentityUserToken' is defined with a 2-part composite key, but 3 values were passed to the 'Find' method.

这个错误的上下文细节在截图里会更清晰,核心问题就是Identity的IdentityUserToken实体定义的是2部分的复合键,但Find方法却接收到了3个匹配值,导致参数不匹配。

下面是我的IdentityDataBaseContext核心代码(后续还有部分实体配置内容,但核心结构如下):

public class IdentityDataBaseContext : IdentityDbContext<User>
{
    public IdentityDataBaseContext(DbContextOptions<IdentityDataBaseContext> options) : base(options)
    {
    }
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<IdentityUser<string>>().ToTable("Users");
        // 这里我还对Identity的部分实体做了表名自定义等配置
        // 后续还有其他实体的配置代码
        base.OnModelCreating(modelBuilder);
    }
}

我目前怀疑是不是OnModelCreating里的配置顺序出了问题?或者是自定义的User实体和Identity默认的IdentityUserToken键配置不兼容?有没有朋友遇到过类似的问题,能给我一些排查方向或者解决思路吗?

备注:内容来源于stack exchange,提问作者Hanii Vand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 06:58:15