如果ASP.NET Core Identity在浏览器中登录失败,但是在使用UserManager.CheckPasswordAsync方法以及字面字符串的情况下工作正常,可能是由于密码加密算法的不同引起的。以下是可能的解决方法之一:
确保密码加密算法一致:在ASP.NET Core Identity中,默认使用的是PBKDF2算法进行密码加密。如果您使用的是其他加密算法,例如BCrypt或Argon2,可能会导致验证失败。请确保在登录和验证密码时使用相同的密码加密算法。
配置密码加密算法:您可以通过在Startup.cs文件中的ConfigureServices方法中添加以下代码来配置密码加密算法:
services.Configure(options =>
{
options.CompatibilityMode = PasswordCompatibilityMode.IdentityV3;
});
这将将密码加密算法设置为Identity V3模式,该模式与ASP.NET Identity的默认算法兼容。
请注意,这只是解决问题的一种可能方法。您可能还需要进一步调查和调试,以确定问题的确切原因。