在 Asp.Net Identity 2 中构建自定义用户检查密码

2024-01-11

我需要在 asp.net MVC 5 中实现并使用 Asp.Net Identity 2 的应用程序中构建自定义用户密码检查。

我在 stackoverflow 上读到一篇文章(在 Identity 2.1 中编写自定义 IUserPasswordStore 和 SignInManager.PasswordSignInAsync https://stackoverflow.com/questions/27789015/writing-a-custom-iuserpasswordstore-and-signinmanager-passwordsigninasync-in-ide)我只需要重写 UserManager 中的 CheckPasswordAsync 方法。

我尝试在 IdentityConfig.cs 文件中重写此方法。这是我添加到 ApplicationUserManager 类中只是为了测试此解决方案的代码:

public override async Task<bool> CheckPasswordAsync(ApplicationUser user,   string password)
{
        return await Task.Run(() => {
            return true;
        });
}

问题是这段代码永远不会在登录过程中运行,并且登录总是失败。为了登录用户,我使用 SignInManager.PasswordSignInAsync 来登录用户,这是在 ASP.NET MVC 5 中创建新 Web 应用程序时的默认设置。此方法不应该调用 ApplicationUserManager。检查密码异步?或者这项工作还需要其他配置?


它应该有效。我刚刚使用了标准 ASP.NET MVC 模板,通过 NuGet 更新了所有涉及的库,它必须可以工作。

我想问题是你重写该方法的方式。

In your ApplicationUserManager尝试像这样更改您的代码:

public override Task<bool> CheckPasswordAsync(ApplicationUser user, string password)
{
    return Task.FromResult<bool>(true);
}

or:

public override Task<bool> CheckPasswordAsync(ApplicationUser user, string password)
{
    return Task.Run(() => MyCheckPasswordAsync());
}

private bool MyCheckPasswordAsync()
{
    return true;
}

你会看到它经历:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Asp.Net Identity 2 中构建自定义用户检查密码 的相关文章

随机推荐