在 ASP .NET Core 3.1 中发布验证用户密码

Issue validating user passwords in ASP .NET Core 3.1

我有一个使用 .NET Framework 4.7.1 和 ASP .NET Identity 构建的应用程序来验证我们的用户,我正在使用 IdentityServer4 和 .NET CORE 3.1 以及 Identity Core 重写这个应用程序的身份验证部分我遇到了一个问题:在我登录新应用程序后,旧应用程序停止验证我在新应用程序中使用的用户。 重现步骤:

  1. 旧应用登录:成功
  2. 登录新应用:成功
  3. 老应用登录:失败,无法验证用户密码

有谁知道如何解决这个问题?

谢谢

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

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

此代码启用了与旧版本 .NET Identity 的兼容模式,这解决了问题,用户密码验证正常,不再对数据库进行任何更新。