SecurityStamp 不会在密码更改时更新
SecurityStamp is not updated on password change
我开发了一个 MVC 5 应用程序,该应用程序使用 ASP.NET 具有自定义用户存储和安全标记的身份。
问题是当我更改用户密码时,使用此调用:
await store.SetPasswordHashAsync(identity, hashedPassword).ConfigureAwait(true);
安全戳未更新。
安全标记仅在用户创建时设置。我创建用户:
await userManager.CreateAsync(identity).ConfigureAwait(true);
其中 identity
是 ApplicationUser 对象。
我该如何解决?
我自己回答。原来我设置密码后应该调用:
userManager.UpdateSecurityStamp(id.ToString());
其中 id
是用户实体的主键,在我的自定义用户存储中是一个整数。
该用户管理器调用导致更改身份的安全标记,并立即调用用户存储的 UpdateAsync
方法将其保存到数据库。
干杯!
我开发了一个 MVC 5 应用程序,该应用程序使用 ASP.NET 具有自定义用户存储和安全标记的身份。
问题是当我更改用户密码时,使用此调用:
await store.SetPasswordHashAsync(identity, hashedPassword).ConfigureAwait(true);
安全戳未更新。
安全标记仅在用户创建时设置。我创建用户:
await userManager.CreateAsync(identity).ConfigureAwait(true);
其中 identity
是 ApplicationUser 对象。
我该如何解决?
我自己回答。原来我设置密码后应该调用:
userManager.UpdateSecurityStamp(id.ToString());
其中 id
是用户实体的主键,在我的自定义用户存储中是一个整数。
该用户管理器调用导致更改身份的安全标记,并立即调用用户存储的 UpdateAsync
方法将其保存到数据库。
干杯!