【问题标题】:Multiple Security Questions in ASP.NET MembershipASP.NET 成员资格中的多个安全问题
【发布时间】:2011-01-02 05:55:27
【问题描述】:

我们正在使用 ASP.NET Membership Provider 来管理我们应用程序中的用户。

一切都很好,直到我们有了新的需求。 用户应该能够选择多个安全问题并给出相同的答案。

在恢复密码时,系统会向用户显示其中一个安全问题,如果用户回答正确,则会发送密码。

默认情况下,ASP.NET 成员资格仅提供一个安全问题和一个安全答案。 有没有办法让它使用多个?

【问题讨论】:

  • 为什么要以可解密的格式存储密码?
  • 他的措辞可能很笨拙。开箱即用的会员提供程序将重置密码,而不是重新发送密码。我同意发送原始密码会存在安全漏洞。
  • 对不起,如果我没有提到它。我仅以散列格式存储密码。

标签: c# asp.net-membership


【解决方案1】:

创建您自己的自定义 ASP.NET 成员资格提供程序将是关键。此外,您必须为使用密码 Q 的 .NET 登录控件创建一个自定义模板,以便您可以显示多个问题/答案部分。

您可能必须将会员资格提供者设置为不使用密码问题/答案,而是以可编程方式自行管理。默认情况下,它使用单个 Q/A 来管理安全性;但由于您需要多个,因此使用自定义逻辑来管理它可能更容易。

编辑:我能想到的唯一另一件事是有两个提供程序定义,每个都有自己的密码问题/答案,这样您就可以有效地将每个用户的两条记录存储在数据库中。问题是 UI 控件不适用于该方法,因此您需要自定义构建 UI。

HTH。

【讨论】:

  • Brian,这正是我想要避免的。我已经偏离了 ASP.NET 成员资格,如果我也这样做,我只使用提供程序来执行 SP 插入/更新 :) 试图查看是否有另一个选项可以有多个问题/答案而不是每个默认一个。感谢您调查问题
  • 可以,但是没有开箱即用;你必须偏离。我能想到的唯一其他事情是添加到上面的帖子中。
【解决方案2】:

您可以通过子类化来自定义默认的 ASP.NET 成员资格提供程序以满足您的特定要求。

【讨论】:

  • 我认为他在问如何做到这一点。 :)
猜你喜欢
  • 2010-09-17
  • 2011-11-03
  • 2013-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多