【问题标题】:UserManager.CheckPasswordAsync always returns failureUserManager.CheckPasswordAsync 总是返回失败
【发布时间】:2019-03-13 19:07:41
【问题描述】:

我在 Winforms 项目中使用 AspNet.Identity。我通过传递给 UserManager.FindByNameAsync 的用户名成功找到了用户,但我无法让我的登录名使用传递的密码。我可以使用相同的数据库和完全相同的凭据在我的 MVC 应用程序中正常登录。

这是我的代码:

public async Task<List<string>> VerifyUserNamePassword(string userName, string password)
    {
        var usermanager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new IdentityFrameworkDbContext()));

        var user = await usermanager.FindAsync(userName, password);

        //This is ALWAYS NULL!
        if (user != null) 
            label1.Text = "Success!";

        var u = await usermanager.FindByEmailAsync(userName);

        if (u != null)
        {
            //This works up to this point - check if password is correct

            var success = await usermanager.CheckPasswordAsync(u, password);

            //THIS IS ALWAYS FALSE!
            if (success)
                label1.Text = "YES THIS WORKED!";
        }            

        //This works, I get the Roles back and they are correct
        var users = await usermanager.GetRolesAsync(u.Id);

        return users.ToList();
    }

【问题讨论】:

    标签: c# winforms entity-framework asp.net-identity


    【解决方案1】:

    密码哈希取决于 app.config 或 web.config 中的这些设置。

    <system.web>
      <machineKey decryption="" decryptionKey="" validation="" validationKey="" />
    </system.web>
    

    如果它们不存在,则将使用框架 machine.config 中的设置。如果您希望多个应用或部署使用相同的数据库,那么您必须在这些部署中提供相同的值。

    鉴于您已经有一个正在运行的 aps.net 实例,您应该将值从 web.config 复制到 Windows 窗体的 app.config 或从 web 服务器上的 machine.config。

    【讨论】:

    • 我在这里迷路了。我使用此数据库的另一个应用程序是使用 MVC 的 Asp.Net Core 2.0 应用程序。我在 appsettings.json 文件中没有任何这些值,当我查看它在发布时创建的 web.config 时,这些值不在 web.config 中。
    • @user10529812 - 你没有提到任何关于 asp.net 核心的内容。我想这些值是从 machine.config 中检索的,但我不能说。您确实需要确保共享相同数据源的所有应用程序都使用相同的键值。
    猜你喜欢
    • 2018-05-22
    • 2021-12-27
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多