我的更改密码有问题,我有改变的方法:
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)时,我无法使用新密码而不是旧密码......
有任何想法吗?
谢谢!
答案 0 :(得分:0)
您应该使用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