使用asp.net安全更改密码

本文关键字:密码 安全 asp net 使用 | 更新日期: 2023-09-27 18:25:48

我的更改密码有问题,我有更改的方法:

public async Task ChangeMyPasswordAsync(string password, string oldPassword)
{
    var identity = await UserManager.FindAsync((Thread.CurrentPrincipal.Identity as ClaimsIdentity).Name, oldPassword);
    if (identity == null)
        throw new AuthenticationException();
    CheckError(await UserManager.RemovePasswordAsync(identity.Id));
    CheckError(await UserManager.AddPasswordAsync(identity.Id, password));
}

如果你在BBDD中显示表格,密码的哈希值会被更改,但当我试图登录应用程序时,我会看到这一行:

var user = await userManager.FindByNameAsync(context.UserName);

在用户变量中有旧密码的HASH,但当我重置应用程序时(再次Shift+F5和F5),我不能使用新密码,也不能使用旧密码。。。

你知道吗??

谢谢!!

使用asp.net安全更改密码

您应该使用ChangePassword方法,而不是删除密码并添加新密码。

public async Task ChangeMyPasswordAsync(string password, string oldPassword)
{
    var identity = await UserManager.FindAsync((Thread.CurrentPrincipal.Identity as ClaimsIdentity).Name, oldPassword);
    if (identity == null)
        throw new AuthenticationException();
    CheckError(await UserManager.ChangePasswordAsync(identity.Id, oldPassword, password));
}

请参阅Microsoft文档:http://msdn.microsoft.com/en-us/library/dn497523(v=vs.108).aspx