【问题标题】:ASP.NET Membership ChangePassword, UpdateUser lost update anomolyASP.NET Membership Change Password, Update User lost update异常
【发布时间】:2012-11-08 10:11:22
【问题描述】:

我发现 MembershipProvider 存在一个我认为非常烦人的问题...我希望其他人已经遇到过这个问题并优雅地解决了它。

我创建了一种在更改密码时计算密码强度的方法,以便我可以将其存储用于管理目的(审核、强制重置等)因为我不想存储纯文本密码,所以这个值修改密码时需要计算。

更糟糕的是,我正在对现有代码库进行此改进,尝试不触及特定项目,并尽可能支持细微的配置更改。调用我的会员提供程序的代码按此顺序调用:

获取用户 更改密码 更新用户

不幸的是,在 ChangePassword 之后调用 UpdateUser 会导致丢失更新异常。对我来说,这似乎是提供者结构中的一个根本缺陷。验证密码需要 ChangePassword,但 UpdateUser 无法知道进行了哪些更改。

还有其他人遇到过这个问题吗?

注意:我知道我可以分离出更改密码的工作流程并完全避免 UpdateUser。我试图不这样做,因为它需要我完全替换现有代码块,这些代码块可能会在现有代码库的未来版本中更新。

【问题讨论】:

    标签: asp.net c#-4.0 asp.net-membership change-password


    【解决方案1】:

    我通过派生一个新的 MembershipUser 并在那里覆盖 ChangePassword 解决了这个问题,它在其基本调用中调用了 ChangePassword。

    我调用了基本方法,如果结果为真,则将我的密码“元数据”构建到那里的对象中。之后调用更新方法时,对象上存在正确的数据。

    我会暂时搁置这个问题,以防有人找到更好的解决方案。

    【讨论】:

      猜你喜欢
      • 2012-07-17
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多