gpt4 book ai didi

.net - 在asp.net mvc中实现忘记密码功能的一些问题

转载 作者:行者123 更新时间:2023-12-03 17:53:03 24 4
gpt4 key购买 nike

我想在asp.net mvc中实现一个忘记密码的功能,允许用户重置他们的密码,在这方面有一些问题:

  • 假设在允许用户重置密码之前,我想验证一些额外的信息,例如他们的名字和姓氏。默认情况下,此信息不存储在由 aspnet_regsql 创建的表中。解决此类问题的推荐方法是什么?我应该将此类信息存储在单独的表中,并使用表连接来验证还是应该修改由 aspnet_regsql 生成的表的架构(如何?)以便我不必使用连接?我是否需要编写自定义提供程序或不需要?
  • 我在一些地方读过,例如在此 post代替通过电子邮件发送临时密码,另一种方法是通过电子邮件发送一个 URL,当单击该 URL 时,用户可以更改其密码。这是怎么做的?如何确保 URL 在 1 小时后过期?
  • 最佳答案

    对于你提出的问题,我可以详细地写几个答案。实现细节太多了,但我会尽量指出我在设计网站时牢记的要点。基本上,您可以(并且应该)与 Membership 提供商合作,而不是解决它。这是一些工作,但可以使用提供程序和 ASP.NET MVC 执行以下所有操作。

  • 避免直接访问成员资格表或执行成员资格存储过程。
  • 它们的结构和用法在较旧或较新版本中可能有所不同。
  • 已经建立了提供者来执行大多数任务。
  • LINQ 其他框架方法并帮助完成剩下的工作。
  • 对于名称等“额外”信息,请使用 ASP.NET Profiles
  • 用户电子邮件地址应该是唯一的。
  • 用户应创建自己的帐户。
  • 管理员不应直接创建新帐户。
  • 密码和安全答案应该只为用户所知。
  • 在帐户激活之前,应发送生成的 key (以 URL 的形式)以验证给定电子邮件地址的所有权。
  • 实现成员(member)资格提供商已经支持的安全问题和答案。
  • Provide good questions from which to choose.
  • 不要强制或信任用户临时想出一个好问题。
  • 只有知道当前密码才能更改问题/答案。
  • 忘记密码
  • 可以通过正确回答安全问题来重置。
  • 如果安全答案也被忘记或帐户被锁定,可以通过管理操作重置。
  • 重置密码应该意味着:
  • 生成的临时密码将发送到帐户上的电子邮件地址。临时的意思:
  • 设置一个标志(配置文件值)以指示用户在下次登录后必须设置新密码。
  • 密码在设定的时间后到期。
  • 管理员可以重置密码,但永远不应该知道密码。
  • 必须使用第二个提供者定义来完成(见 ASP.Net User forgot answer to password question)
  • 如有必要,应同时解锁帐户。
  • 密码或安全回答尝试失败次数过多后锁定帐户。
  • 已在提供程序中计算和配置失败的尝试。
  • 可选择在足够的时间过去后自动解锁帐户。

  • 如果我想到更多,我会扩展它。

    关于.net - 在asp.net mvc中实现忘记密码功能的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5532704/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com