我发现我认为 MembershipProvider 的一个非常烦人的问题......我希望其他人已经遇到过这个问题并优雅地解决了它。
我创建了一种在更改密码时计算密码强度的方法,以便我可以将其存储以用于管理目的(审核、强制重置等)因为我不想存储纯文本密码,所以这个值需要是在密码更改期间计算。
更糟糕的是,我正在对现有代码库进行这种改进,尝试不触及特定项目,尽可能地支持较小的配置更改。调用我的会员提供程序的代码按以下顺序调用:
获取用户更改密码更新用户
不幸的是,在 ChangePassword 之后调用 UpdateUser 会导致丢失更新异常。对我来说,这似乎是提供者结构中的一个根本缺陷。ChangePassword 是验证密码所必需的,但 UpdateUser 无法知道进行了哪些更改。
有没有其他人遇到过这个问题?
注意:我知道我可以将更改密码工作流程分开并完全避免 UpdateUser。我试图不这样做,因为它需要我完全替换现有代码块,这些代码块可能会在现有代码库的未来版本中更新。