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