更改密码时不会更新安全印章



我开发了一个MVC 5应用程序,该应用程序使用带有自定义用户存储和安全标记的 ASP.NET Identity。

问题是,当我使用此调用更改用户的密码时:

await store.SetPasswordHashAsync(identity, hashedPassword).ConfigureAwait(true);

安全标记不会更新。

安全标记仅在用户创建时设置。我创建用户:

await userManager.CreateAsync(identity).ConfigureAwait(true);

其中identity是应用程序用户对象。

我该如何解决?

我回答自己。原来,在我设置密码后,我应该调用:

userManager.UpdateSecurityStamp(id.ToString());

其中id是用户实体的主键,在我的自定义用户存储中是一个整数。

该用户管理器调用会导致更改标识的安全标记,并立即调用用户存储的UpdateAsync方法将其保存到数据库。

干杯!

最新更新