在ASP.NET Core 3.1中验证用户密码时出现问题

在ASP.NET Core 3.1中验证用户密码时出现问题,asp.net,asp.net-core,.net-core,asp.net-identity,identityserver4,Asp.net,Asp.net Core,.net Core,Asp.net Identity,Identityserver4,我有一个使用ASP.NET Identity的.NET Framework 4.7.1构建的应用程序来验证我们的用户,我正在使用Identity CORE的.NET CORE 3.1 Identity CORE的Identity Server 4重写此应用程序的验证部分,我遇到了一个问题:在登录新应用程序后,旧应用程序停止验证我在新应用程序中使用的用户。 复制步骤: 在旧应用中登录:成功 登录新应用程序:成功 在旧应用中登录:失败,无法验证用户密码 有人知道如何解决这个问题吗 谢谢我发现新应用程

我有一个使用ASP.NET Identity的.NET Framework 4.7.1构建的应用程序来验证我们的用户,我正在使用Identity CORE的.NET CORE 3.1 Identity CORE的Identity Server 4重写此应用程序的验证部分,我遇到了一个问题:在登录新应用程序后,旧应用程序停止验证我在新应用程序中使用的用户。 复制步骤:

  • 在旧应用中登录:成功
  • 登录新应用程序:成功
  • 在旧应用中登录:失败,无法验证用户密码
  • 有人知道如何解决这个问题吗


    谢谢

    我发现新应用程序正在更新数据库中的用户密码哈希。 找到后,我在Startup.ConfigureServices(IServiceCollection services)方法的开头添加了以下代码行:

    services.Configure(选项=>{
    options.CompatibilityMode=passwordhasher-CompatibilityMode.IdentityV2;
    });
    
    此代码启用了与旧版本的.NET标识的兼容模式,并修复了该问题,用户的密码正在验证中,并且不再对数据库进行更新

    services.Configure<PasswordHasherOptions>(options => {
        options.CompatibilityMode = PasswordHasherCompatibilityMode.IdentityV2;
    });