【问题标题】:.NET MVC Membership - show current user password on web page.NET MVC Membership - 在网页上显示当前用户密码
【发布时间】:2012-09-30 21:16:43
【问题描述】:

.NET 成员存储所有密码编码。像这样:

TcsrrZQK9xZw3A4lXTKmeDC5LbJ6sAePCBuAipqnM4M=

我有客户的要求,在用户配置文件系统中需要显示当前用户密码。

是否有可能(出于安全原因,我仍然需要在数据库中编码密码)?有什么例子吗?

【问题讨论】:

  • 客户想要查看其他用户的密码是解决应该以不同方式解决的问题的解决方案。但如果你必须知道,那看起来像 Base64。
  • @CodeCaster - 但是 Base64 后面的字节是什么?
  • @HenkHolterman 我从未使用过内置的会员资格提供程序,但显然默认情况下它会对密码进行哈希处理(Base64 是否将二进制哈希存储在 varchar 列中?),所以幸运的是他们不能这样滥用。我只是想说 OP 应该解决真正的问题,例如:“应用程序中的某些(管理员)用户应该能够以(即模拟)不同用户的身份登录以执行操作”,或“我们的用户希望在忘记密码时能够找回密码”,因此可以选择更好的解决方案。

标签: c# asp.net-mvc asp.net-membership


【解决方案1】:

通常/最佳做法是使用单向加密来存储密码。

您只能通过使用对称加密和覆盖内置密码存储方法来做您想做的事。

更好的解决方案是将临时密码通过电子邮件发送给必须在下次登录时更改密码的用户。作为一个非常不安全的扩展,您可以在屏幕上显示此密码。

祝你好运

【讨论】:

  • +1 使用加密而不是散列来存储密码似乎是实现 OP 正在寻找的最安全的途径。
【解决方案2】:

您无法显示密码,因为 ASP.net MVC 使用单向加密。

【讨论】:

    【解决方案3】:

    是的,这是可能的。

    您将需要一个带有属性的自定义membership provider

      EnablePasswordRetrieval = true
    

    这又需要一些其他设置,例如

      PasswordFormat = Encrypted   (normally: Hashed)
    

    我不确定这样的 Provider 是否存在,但你可以写一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多